Multi-pair gigabit ethernet transceiver

ABSTRACT

Various systems and methods providing high speed decoding, enhanced power reduction and clock domain partitioning for a multi-pair gigabit Ethernet transceiver are disclosed. ISI compensation is partitioned into two stages; a first stage compensates ISI components induced by characteristics of a transmitters partial response pulse shaping filter in a demodulator, a second stage compensates ISI components induced by characteristics of a multi-pair transmission channel in a Viterbi decoder. High speed decoding is accomplished by reducing the DFE depth by providing an input signal from a multiple decision feedback equalizer to the Viterbi based on a tail value and a subset of coefficient values received from a unit depth decision-feedback equalizer. Power reduction is accomplished by adaptively truncating active taps in the NEXT, FEXT and echo cancellation filters, or by disabling decoder circuitry portions, as channel response characteristics allow. A receive clock signal is generated such that it is synchronous in frequency with analog sampling clock signals and has a particular phase offset with respect to one of the sampling clock signals. This phase offset is adjusted such that system performance degradation due to coupling of switching noise from the digital sections to the analog sections is substantially minimized.

CROSS REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 11/846,195, filed Aug. 28, 2007 (now U.S. Pat. No. 7,769,101),which is a continuation of U.S. patent application Ser. No. 10/919,729,filed Aug. 17, 2004 (now U.S. Pat. No. 7,263,134), which is acontinuation of U.S. patent application Ser. No. 10/086,618, filed Feb.28, 2002 (now U.S. Pat. No. 6,778,602), which is a continuation of U.S.patent application Ser. No. 09/437,719, filed Nov. 9, 1999 (now U.S.Pat. No. 6,477,200), entitled “Multi-pair Gigabit Ethernet Transceiver.”The contents of all of the above-referenced applications are herebyexpressly incorporated herein by reference.

U.S. patent application Ser. No. 09/437,719 claims priority on the basisof the following provisional applications: Ser. No. 60/130,616 entitled“Multi-Pair Gigabit Ethernet Transceiver,” filed on Apr. 22, 1999, Ser.No. 60/116,946, entitled “Multiple Decision Feedback Equalizer,” filedon Jan. 20, 1999, Ser. No. 60/108,648, entitled “Clock Generation andDistribution in an Ethernet Transceiver,” filed on Nov. 16, 1998, Ser.No. 60/108,319, entitled “Gigabit Ethernet Transceiver” filed on Nov.13, 1998, Ser. No. 60/107,874, entitled “Apparatus for and Method ofDistributing Clock Signals in a Communication System,” filed Nov. 9,1998, and Ser. No. 60/107,880, entitled “Apparatus for and Method ofReducing Power Dissipation in a Communication System,” filed Nov. 9,1998.

The present application is related to the following co-pendingapplications, commonly owned by the assignee of the present application,the entire contents of each of which are expressly incorporated hereinby reference: Ser. No. 09/370,370 (now U.S. Pat. No. 6,253,345),entitled “System and Method for Trellis Decoding in a Multi-PairTransceiver System,” Ser. No. 09/370,353 (now U.S. Pat. No. 6,226,332),entitled “Multi-Pair Transceiver Decoder System with Low ComputationSlicer,” Ser. No. 09/370,354 (now U.S. Pat. No. 6,249,544), entitled“System and Method for High Speed Decoding and ISI Compensation in aMulti-Pair Transceiver System,” Ser. No. 09/370,491 (now U.S. Pat. No.6,252,904), entitled “High-Speed Decoder for Multi-Pair GigabitTransceiver,” all filed Oct. 10, 1999, and Ser. No. 09/390,856 (now U.S.Pat. No. 6,289,047), entitled “Dynamic Regulation of Power Consumptionin a High-speed Communication System,” filed Sep. 3, 1999.

The present application is also related to the following co-pendingapplications, filed on instant date herewith and commonly owned by theassignee of the present application, the entire contents of each ofwhich are expressly incorporated herein by reference: Ser. No.09/437,721 (now U.S. Pat. No. 6,363,129), entitled “Timing RecoverySystem for a Multi-Pair Gigabit Transceiver,” and Ser. No. 09/437,724(now U.S. Pat. No. 6,307,905), entitled “Switching Noise Reduction in aMulti-Clock Domain Transceiver.”

FIELD OF THE INVENTION

The present invention relates generally to high speed networkingtransceivers and, more particularly to gigabit Ethernet transceivershaving reduced power consumption, efficient clock domain partitioningand able to decode input symbols within a symbol period with a minimumof computational intensity.

DESCRIPTION OF THE RELATED ART

In recent years, local area network (LAN) applications have become moreand more prevalent as a means for providing local interconnect betweenpersonal computer systems, work stations and servers. Because of thebreadth of its installed base, the 10BASE-T implementation of Ethernetremains the most pervasive if not the dominant, network technology forLANs. However, as the need to exchange information becomes more and moreimperative, and as the scope and size of the information being exchangedincreases, higher and higher speeds (greater bandwidth) are requiredfrom network interconnect technologies. Among the high-speed LANtechnologies currently available, fast Ethernet, commonly termed100BASE-T, has emerged as the clear technological choice. Fast Ethernettechnology provides a smooth, non-disruptive evolution from the 10megabit per second (Mbps) performance of 10BASE-T applications to the100 Mbps performance of 100BASE-T. The growing use of 100BASE-Tinterconnections between servers and desktops is creating a definiteneed for an even higher speed network technology at the backbone andserver level.

One of the more suitable solutions to this need has been proposed in theIEEE 802.3ab standard for gigabit Ethernet, also termed 1000BASE-T.Gigabit Ethernet is defined as able to provide 1 gigabit per second(Gbps) bandwidth in combination with the simplicity of an Ethernetarchitecture, at a lower cost than other technologies of comparablespeed. Moreover, gigabit Ethernet offers a smooth, seamless upgrade pathfor present 10BASE-T or 100BASE-T Ethernet installations.

In order to obtain the requisite gigabit performance levels, gigabitEthernet transceivers are interconnected with a multi-pair transmissionchannel architecture. In particular, transceivers are interconnectedusing four separate pairs of twisted Category-5 copper wires. Gigabitcommunication, in practice, involves the simultaneous, paralleltransmission of information signals, with each signal conveyinginformation at a rate of 250 megabits per second (Mb/s). Simultaneous,parallel transmission of four information signals over four twisted wirepairs poses substantial challenges to bidirectional communicationtransceivers, even though the data rate on any one wire pair is “only”250 Mbps.

In particular, the gigabit Ethernet standard requires that digitalinformation being processed for transmission be symbolically representedin accordance with a five-level pulse amplitude modulation scheme(PAM-5) and encoded in accordance with an 8-state Trellis codingmethodology. Coded information is then communicated over amulti-dimensional parallel transmission channel to a designatedreceiver, where the original information must be extracted (demodulated)from a multi-level signal. In gigabit Ethernet, it is important to notethat it is the concatenation of signal samples received simultaneouslyon all four twisted pair lines of the channel that defines a symbol.Thus, demodulator/decoder architectures must be implemented with adegree of computational complexity that allows them to accommodate notonly the “state width” of Trellis coded signals, but also the“dimensional depth” represented by the transmission channel.

Computational complexity is not the only challenge presented to moderngigabit capable communication devices. A perhaps greater challenge isthat the complex computations required to process “deep” and “wide”signal representations must be performed in an almost vanishingly smallperiod of time. For example, in gigabit applications, each of thefour-dimensional signal samples, formed by the four signals receivedsimultaneously over the four twisted wire pairs, must be efficientlydecoded within a particular allocated symbol time window of about 8nanoseconds.

Successfully accomplishing the multitude of sequential processingoperations required to decode gigabit signal samples within an 8nanosecond window requires that the switching capabilities of theintegrated circuit technology from which the transceiver is constructedbe pushed to almost its fundamental limits. If performed in conventionalfashion, sequential signal processing operations necessary for signaldecoding and demodulation would result in a propagation delay throughthe logic circuits that would exceed the clock period, rendering thetransceiver circuit non-functional. Fundamentally, then, the challengeimposed by timing constraints must be addressed if gigabit Ethernet isto retain its viability and achieve the same reputation for accurate androbust operation enjoyed by its 10BASE-T and 100BASE-T siblings.

In addition to the challenges imposed by decoding and demodulatingmultilevel signal samples, transceiver systems must also be able to dealwith intersymbol interference (ISI) introduced by transmission channelartifacts as well as by modulation and pulse shaping components in thetransmission path of a remote transceiver system. During thedemodulation and decoding process of Trellis coded information, ISIcomponents are introduced by either means must also be considered andcompensated, further expanding the computational complexity and thus,system latency of the transceiver system. Without a transceiver systemcapable of efficient, high-speed signal decoding as well as simultaneousISI compensation, gigabit Ethernet would likely not remain a viableconcept.

In a Gigabit Ethernet communication system that conforms to the1000BASE-T standard, gigabit transceivers are connected via Category 5twisted pairs of copper cables. Cable responses vary drastically amongdifferent cables. Thus, the computations, and hence power consumption,required to compensate for noise (such as echo, near-end crosstalk,far-end crosstalk) will vary widely depending on the particular cablethat is used.

In integrated circuit technology, power consumption is generallyrecognized as being a function of the switching (clock) speed oftransistor elements making up the circuitry, as well as the number ofcomponent elements operating within a given time period. The moretransistor elements operating at one time, and the higher theoperational speed of the component circuitry, the higher the relativedegree of power consumption for that circuit. This is particularlyrelevant in the case of Gigabit Ethernet, since all computationalcircuits are clocked at 125 Mhz (corresponding to 250 Mbps per twistedpair of cable), and the processing requirements of such circuits requirerather large blocks of computational circuitry, particularly in thefilter elements. Power consumption figures in the range of from about4.5 Watts to about 6.0 Watts are not unreasonable when the speed andcomplexity of modern gigabit communication circuitry is considered.

Pertinent to an analysis of power consumption is the realization thatpower is dissipated, in integrated circuits, as heat. As powerconsumption increases, not only must the system be provided with a morerobust power supply, but also with enhanced heat dissipation schemes,such as heat sinks (dissipation fins coupled to the IC package), coolingfans, increased interior volume for enhanced air flow, and the like. Allof these dissipation schemes involve considerable additionalmanufacturing costs and an extended design cycle due to the need to planfor thermal considerations.

Prior high speed communication circuits have not adequately addressedthese thermal considerations, because of the primary necessity ofaccommodating high data rates with a sufficient level of signal quality.Prior devices have, in effect, “hard wired” their processing capability,such that processing circuitry is always operative to maximize signalquality, whether that degree of processing is required or not. Wherechannel quality is high, full-filter-tap signal processing more oftenobeys the law of diminishing returns, with very small incremental noisemargin gains recovered from the use of additional large blocks of activefilter circuitry.

This trade-off between power consumption and signal quality hasheretofore limited the options available to an integrated circuitcommunication system designer. If low power consumption is made a systemrequirement, the system typically exhibits poor noise margin orbit-error-rate performance. Conversely, if system performance is madethe primary requirement, power consumption must fall where it may withthe corresponding consequences to system cost and reliability.

Accordingly, there is a need for a high speed integrated circuitcommunication system design which is able to accommodate a wide varietyof worst-case channel (cable) responses, while adaptively evaluatingsignal quality metrics in order that processing circuitry might bedisabled, and power consumption might thereby be reduced, at any suchtime that the circuitry is not necessary to assure a given minimum levelof signal quality.

Such a system should be able to adaptively determine and achieve thehighest level of signal quality consistent with a given maximum powerconsumption specification. In addition, such a system should be able toadaptively determine and achieve the lowest level of power consumptionconsistent with a given minimum signal quality specification.

SUMMARY OF THE INVENTION

The present invention is a method and a system for providing an inputsignal from a multiple decision feedback equalizer to a decoder based ona tail value and a subset of coefficient values received from adecision-feedback equalizer. A set of pre-computed values based on thesubset of coefficient values is generated. Each of the pre-computedvalues is combined with the tail value to generate a tentative sample.One of the tentative samples is selected as the input signal to thedecoder.

In one aspect of the system, tentative samples are saturated and thenstored in a set of registers before being outputted to a multiplexerwhich selects one of the tentative samples as the input signal to thedecoder. This operation of storing the tentative samples in theregisters before providing the tentative samples to the multiplexerfacilitates high-speed operation by breaking up a critical path ofcomputations into substantially balanced first and second portions, thefirst portion including computations in the decision-feedback equalizerand the multiple decision feedback equalizer, the second portionincluding computations in the decoder.

The present invention can be directed to a system and method fordecoding and ISI compensating received signal samples, modulated fortransmission in accordance with a multi-level alphabet, and encoded inaccordance with a multi-state encoding scheme. Modulated and encodedsignal samples are received and decoded in an integrated circuitreceiver which includes a multi-state signal decoder. The multi-statesignal decoder includes a symbol decoder adapted to receive a set ofsignal samples representing multi-state signals and evaluate themulti-state signals in accordance with the multi-level modulationalphabet and the multi-state encoding scheme. The symbol decoder outputstentative decisions.

An ISI compensation circuit is configured to provide ISI compensatedsignal samples to the symbol decoder. The ISI compensation circuit isconstructed of a single decision feedback equalizer, with the singledecision feedback equalizer providing ISI compensated signal samples tothe symbol decoder based on tentative decisions outputted by the symboldecoder.

In one aspect of the invention, a path memory module is coupled to thesymbol decoder and receives decisions and error terms from the symboldecoder. The path memory module includes a plurality of sequentialregisters, with each corresponding to a respective one of consecutivetime intervals. The registers store decisions corresponding to therespective ones of the states of the multi-state encoded signals.Decision circuitry selects a best decision from corresponding ones ofthe registers, with the best decision of a distal register defining afinal decision. The best decision of an intermediate register defines atentative decision which is output to the ISI compensation circuit.

The single decision feedback equalizer is configured as an FIR filter,and is characterized by a multiplicity of coefficients, subdivided intoa set of high-order coefficients and a set of low-order coefficients.Tentative decisions from the path memory module are forced to the singledecision feedback equalizer at various locations along the filter delayline and are combined with the high-order coefficients in order todefine a partial ISI component. The partial ISI component isarithmetically combined with an input signal sample in order to generatea partially ISI compensated intermediate signal called tail signal.

Low-order coefficients from the single decision feedback equalizer aredirected to a convolution engine wherein they are combined with valuesrepresenting the levels of a multi-level modulation alphabet. Theconvolution engine outputs a multiplicity of signals, representing theconvolution results, each of which are arithmetically combined with thetail signal to define a set of ISI compensated tentative signal samples.

In a particular aspect of the invention, the ISI compensated tentativesignal samples are saturated and then stored in a set of registersbefore being outputted to a multiplexer circuit which selects one of thetentative signal samples as the input signal to the symbol decoder.Storing tentative signal samples in the set of registers beforeproviding the tentative signal samples to the multiplexer, facilitateshigh-speed operation by breaking up a critical path of computations intosubstantially balanced first and second portions, the first portionincluding computation in the ISI compensation circuitry, including thesingle decision feedback equalizer and the multiple decision feedbackequalizer, the second portion including computations in the symboldecoder.

In a further aspect of the present invention, symbol decoder circuitryis implemented as a Viterbi decoder, the Viterbi decoder computing pathmetrics for each of the N states of a Trellis code, and outputtingdecisions based on the path metrics. A path memory module is coupled tothe Viterbi decoder for receiving decisions. The path memory module isimplemented with a number of depth levels corresponding to consecutivetime intervals. Each of the depth levels includes N registers forstoring decisions corresponding to the N states of the trellis code.Each of the depth levels further includes a multiplexer for selecting abest decision from the corresponding N registers, the best decision atthe last depth level defining the final decision, the best decisions atother selected depth levels defining tentative decisions.

In a particular aspect of the invention, tentative decisions aregenerated from the first three depth levels of the path memory module.These tentative decisions are forced to a single decision feedbackequalizer to generate a partial ISI component based on the first threetentative decisions and a set of high-order coefficients. The partialISI component is arithmetically combined with an input signal sample inorder to define a partially ISI compensated tentative signal sample.

The first two coefficients of the single decision feedback equalizer arelinearly combined with values representing the five levels of a PAM-5symbol alphabet, thereby generating a set of 25 pre-computed values,each of which are arithmetically combined with the partial ISIcompensated signal sample to develop a set of 25 samples, one of whichis a fully ISI compensated signal sample and is chosen as the input tothe symbol decoder.

The present invention is further directed to a system and method fordecoding information signals modulated in accordance with a multi-levelmodulation scheme and encoded in accordance with a multi-state encodingscheme by computing a distance between a received word from a codewordincluded in a plurality of code-subsets. Codewords are formed from aconcatenation of symbols from a multi-level alphabet, with the symbolsselected from two disjoint symbol-subsets X and Y. A received word isrepresented by L inputs, with L representing the number of dimensions ofa multi-dimensional communication channel. Each of the L inputs uniquelycorresponds to one of the L dimensions. A set of 1-dimensional (1D)errors is produced from the L inputs, with each of the 1D errorsrepresenting a distance metric between a respective one of the L inputsand a symbol in one of the two disjoint symbol-subsets. 1D errors arecombined in order to produce a set of L-dimensional errors such thateach of the L-dimensional errors represents a distance between thereceived word and a nearest codeword in one of the code-subsets.

In one embodiment of the invention, each of the L inputs is sliced withrespect to each of the two disjoint symbol-subsets X and Y in order toproduce a set of X-based errors, a set of Y-based errors andcorresponding sets of X-based and Y-based decisions. The sets of X-basedand Y-based errors form the set of 1D errors, while the sets of X-basedand Y-based decisions form a set of 1D decisions. Each of the X-basedand Y-based decisions corresponds to a symbol, in a corresponding symbolsubset, closest in distance (value) to one of the L inputs. Each of the1D errors represents a distance metric between a corresponding 1Ddecision and the respective one of the L inputs.

In another embodiment of the invention, each of the L inputs are slicedwith respect to each of the two disjoint symbol subsets X and Y in orderto produce a set of 1D decisions. Each of the L inputs is further slicedwith respect to a symbol-set including all of the symbols of the twodisjoint symbol-subsets in order to produce a set of hard decisions. TheX-based and Y-based 1D decisions are combined with a set of harddecisions in order to produce a set of 1D errors, with each of the 1Derrors representing a distance metric between a corresponding 1Ddecision and a respective one of the L inputs.

In one embodiment of the present invention, 1-dimensional errors arecombined in a first set of adders in order to produce a set of2-dimensional errors. A second set of adders combines the 2-dimensionalerrors in order to produce intermediate L-dimensional errors, with theintermediate L-dimensional errors being arranged into pairs of errorssuch that the pairs of errors correspond one-to-one to the code-subsets.A minimum-select module determines a minimum for each of the pairs oferrors. Once determined, the minima are defined as the L-dimensionalerrors.

The present invention is further directed to a method for dynamicallyregulating the power consumption of a high-speed integrated circuitwhich includes a multiplicity of processing blocks. A first metric and asecond metric, which are respectively related to a first performanceparameter and a second performance parameter of the integrated circuit,are defined. The first metric is set at a pre-defined value. Selectedblocks of the multiplicity of processing blocks are disabled inaccordance with a set of pre-determined patterns. The second metric isevaluated, while the disabling operation is being performed, to generatea range of values of the second metric. Each of the values correspondsto the pre-defined value of the first metric. A most desirable value ofthe second metric is determined from the range of values and is matchedto a corresponding pre-determined pattern. The integrated circuit issubsequently operated with selected processing blocks disabled inaccordance with the matching pre-determined pattern.

In particular, the first and second performance parameters are distinctand are chosen from the parametric group consisting of power consumptionand a signal quality figure of merit. The signal quality figure of meritis evaluated while selected blocks of the multiplicity of processingblocks are disabled. The set of selected blocks which give the lowestpower consumption, when disabled, while at the same time maintaining anacceptable signal quality figure of merit at a pre-defined thresholdlevel is maintained in a disabled condition while the integrated circuitis subsequently operated.

In one aspect of the present invention, reduced power dissipation ischosen as the most desirable metric to evaluate, while a signal qualityfigure of merit is accorded secondary consideration. Alternatively, asignal quality figure of merit is chosen as the most desirable metric toevaluate, while power dissipation is accorded a secondary consideration.In a further aspect of the present invention, both signal quality andpower dissipation are accorded equal consideration with selective blocksof the multiplicity of processing blocks being disabled and theresultant signal quality and power dissipation figures of merit beingevaluated so as to define a co-existing local maxima of signal qualitywith a local minima of power dissipation.

In one particular embodiment, the present invention may be characterizedas a method for dynamically regulating the power consumption of acommunication system which includes at least a first module. The firstmodule can be any circuit block, not necessarily a signal processingblock. Power regulation proceeds by specifying a power dissipation valueand an error value. An information error metric and a power metric iscomputed. Activation and deactivation of at least a portion of the firstmodule of the communication system is controlled according to aparticular criterion. The criterion is based on at least one of theinformation error metric, the power metric, the specified error and thespecified power, to regulate at least one of the information metric andthe power metric.

In particular, at least a portion of the first module is activated ifthe information error metric is greater than the specified error and thefirst module portion is deactivated if the information error metric isless than the specified error. In an additional aspect of the invention,the first module portion is activated if the information error metric isgreater than the specified error and the power metric is smaller thanthe specified power. The first module portion is deactivated if theinformation error metric is smaller than the specified error or thepower metric is greater than the specified power. In yet a furtheraspect of the invention, the first module portion is activated if theinformation error metric is greater than the specified error and isdeactivated if the information error metric is smaller than a targetvalue, the target value being smaller than the specified error. In yetanother aspect of the invention, the first module portion is activatedif the information error metric is greater than the specified error andthe power metric is smaller than the specified power. The first moduleportion is deactivated if the information error metric is smaller than atarget value, the target value being smaller than the specified error,or the power metric is greater than the specified power.

Advantageously, the information error metric is related to a bit errorrate of the communication system and the information error metric is ameasure of performance degradation in the communication system caused bydeactivation of the portion of the first module. Where the module is afilter which includes a set of taps, with each of the taps including afilter coefficient, the information error metric is a measure ofperformance degradation of a transceiver caused by operation of thefilter.

Power dissipation reduction is implemented by deactivating subsets oftaps which make up the filter, until such time as performancedegradation caused by the truncated filter reaches a pre-determinedthreshold level.

The present invention further provides a method for reducing systemperformance degradation caused by switching noise in a system whichincludes a set of subsystems. Each of the subsystems includes an analogsection and a digital section. Each of the analog sections operates inaccordance with a corresponding one of a set of sampling clock signalswhich are synchronous in frequency. The digital sections operate inaccordance with a receive clock signal. The receive clock signal isgenerated such that it is synchronous in frequency with the samplingclock signals and has a phase offset with respect to one of the samplingclock signals. This phase offset is adjusted such that systemperformance degradation due to coupling of switching noise from thedigital sections to the analog sections is substantially minimized.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, aspects and advantages of the presentinvention will be more fully understood when considered with respect tothe following detailed description, appended claims and accompanyingdrawings, wherein:

FIG. 1 is a simplified, semi-schematic block diagram of a high-speedbidirectional communication system exemplified by two transceiversconfigured to communicate over multiple twisted-pair wiring channels.

FIG. 2 is a simplified, semi-schematic block diagram of a bidirectionalcommunication transceiver system, constructed in accordance with thepresent invention.

FIG. 3 is a simplified, semi-schematic block diagram of an exemplarytrellis decoder, including a Viterbi decoder, in accordance with theinvention, suitable for decoding signals coded by the exemplary trellisencoder of FIG. 6.

FIG. 4A illustrates an exemplary PAM-5 constellation and theone-dimensional symbol-subset partitioning.

FIG. 4B illustrates the eight 4D code-subsets constructed from theone-dimensional symbol-subset partitioning of the constellation of FIG.4A.

FIG. 5 illustrates the trellis diagram for the code.

FIG. 6 is a simplified, semi-schematic block diagram of an exemplarytrellis encoder.

FIG. 7 is a simplified block diagram of a first exemplary embodiment ofa structural analog of a 1D slicing function as might be implemented inthe Viterbi decoder of FIG. 3.

FIG. 8 is a simplified block diagram of a second exemplary embodiment ofa structural analog of a 1D slicing function as might be implemented inthe Viterbi decoder of FIG. 3.

FIG. 9 is a simplified block diagram of a 2D error term generationmachine, illustrating the generation of 2D square error terms from the1D square error terms developed by the exemplary slicers of FIG. 7 or 8.

FIG. 10 is a simplified block diagram of a 4D error term generationmachine, illustrating the generation of 4D square error terms and thegeneration of extended path metrics for the 4 extended paths outgoingfrom state 0.

FIG. 11 is a simplified block diagram of a 4D symbol generation machine.

FIG. 12 illustrates the selection of the best path incoming to state 0.

FIG. 13 is a semi-schematic block diagram illustrating the internalarrangement of a portion of the path memory module of FIG. 3.

FIG. 14 is a block diagram illustrating the computation of the finaldecision and the tentative decisions in the path memory module based onthe 4D symbols stored in the path memory for each state.

FIG. 15 is a detailed diagram illustrating the processing of the outputsV₀ ^((i)), V₁ ^((i)), with i=0, . . . , 7, and V_(0F), V_(1F), V_(2F) ofthe path memory module of FIG. 3.

FIG. 16 shows the word lengths used in one embodiment of this invention.

FIG. 17 shows an exemplary lookup table suitable for use in computingsquared one-dimensional error terms.

FIGS. 18A and 18B are an exemplary look-up table which describes thecomputation of the decisions and squared errors for both the X and Ysubsets directly from one component of the 4D Viterbi input of the 1Dslicers of FIG. 7.

FIG. 19 illustrates the general clocking relationship between thetransmitter and the receiver inside each of the four constituenttransceivers 108 of the gigabit Ethernet transceiver (101 or 102) ofFIG. 1;

FIG. 20 is a simplified block diagram of an embodiment of the timingrecovery system constructed according to the present invention;

FIG. 21 is a block diagram of an exemplary implementation of the systemof FIG. 20;

FIG. 22 is a block diagram of an exemplary embodiment of the phase resetlogic block used for resetting the register of the NCO of FIG. 21 to aspecified value;

FIG. 23 is a block diagram of an exemplary phase shifter logic blockused for the phase control of the receive clock signal RCLK;

FIG. 24 is a flowchart of an embodiment of the process for adjusting thephase of the receive clock signal RCLK;

FIG. 25A is a first example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 are evenly distributedwithin the symbol period.

FIG. 25B is a second example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 are distributed within thesymbol period of 8 nanoseconds (ns) such that each ACLK clock transitionis 1 ns apart from an adjacent ACLK clock transition.

FIG. 25C is a third example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 occur at the same instantwithin the symbol period.

FIG. 26 is a flowchart of an embodiment of the process for adjusting thephase of a sampling clock signal ACLKx associated with one of theconstituent transceivers;

FIG. 27 is a block diagram of an embodiment of the MSE computation blockused for computing the mean squared error of a constituent transceiver.

FIG. 28 is a simplified matrix diagram illustrating the relationshipbetween power consumption and a performance metric;

FIG. 29A is a simplified structure diagram of an adaptive FIR filter asmight be implemented as an echo/NEXT canceller circuit in one embodimentof a transceiver in accordance with the present invention;

FIG. 29B is an equivalent structure of the adaptive FIR filter shown inFIG. 29A;

FIG. 29C is a simplified structure diagram of an alternative adaptiveFIR filter including a modification to the structure of FIG. 29B tobypass a deactivated tap;

FIG. 29D is a simplified block diagram of a deactivate-able coefficientmultiplier circuit such as might be implemented in the filters of FIGS.29A, 29B and 29C;

FIG. 30 is a flowchart depicting a first exemplary embodiment of anadaptive power reduction method according to the present invention;

FIG. 31 is a flowchart depicting one exemplary embodiment of anactivation block according to the method of FIG. 30;

FIG. 32 is a flowchart depicting one exemplary embodiment of adeactivation block according to the method of FIG. 30;

FIG. 33 is a flowchart of one embodiment of the computing block 514 ofFIG. 30;

FIG. 34 is a flowchart depicting one exemplary embodiment of apower-down block according to the method of FIG. 30;

FIG. 35 is a graph of an exemplary impulse response of the echocharacteristics of a typical channel;

FIG. 36 is a graph of an exemplary impulse response of the near-endcrosstalk (NEXT) characteristics of a typical channel;

FIGS. 37A and 37B are graphs of the mean squared error to signal ratio(MSE/signal) expressed in dB as a function of time, with time expressedin bauds, of exemplary Master and Slave transceivers, respectively;

FIGS. 38A and 38B are graphs of the values of the tap coefficients of anexemplary echo canceller as a function of the tap number, afterapplication of the tap power regulating process with the specified errorset at −24 dB and −26 dB, respectively;

FIG. 39 is a block diagram of an exemplary trellis decoder as applied toa case in which there is substantially no intersymbol interference;

FIG. 40 is a simplified block diagram of an alternative embodiment ofthe invention in which power consumption is reduced by substitution of asymbol-by-symbol decoder in place of a Viterbi decoder;

DETAILED DESCRIPTION OF THE INVENTION

In the context of an exemplary integrated circuit-type bidirectionalcommunication system, the present invention might be characterized as asystem and method for accommodating efficient, high speed decoding ofsignal samples encoded according to the trellis code specified in theIEEE 802.3ab standard (also termed 1000BASE-T standard).

As will be understood by one having skill in the art, high speed datatransmission is often limited by the ability of decoder systems toquickly, accurately and effectively process a transmitted symbol withina given time period. In a 1000BASE-T application (aptly termed gigabit)for example, the symbol decode period is typically taken to beapproximately 8 nanoseconds. Pertinent to any discussion of symboldecoding is the realization that 1000BASE-T systems are layered toreceive 4-dimensional (4D) signals (each signal corresponding to arespective one of four twisted pair cables) with each of the4-dimensional signals represented by five analog levels. Accordingly,the decoder circuitry portions of transceiver demodulation blocksrequire a multiplicity of operational steps to be taken in order toeffectively decode each symbol. Such a multiplicity of operations iscomputationally complex and often pushes the switching speeds ofintegrated circuit transistors which make up the computational blocks totheir fundamental limits.

In accordance with the present invention, a transceiver decoder is ableto substantially reduce the computational complexity of symbol decoding,and thus avoid substantial amounts of propagation delay (i.e., increaseoperational speed), by making use of truncated (or partial)representations of various quantities that make up the decoding/ISIcompensation process.

Sample slicing is performed in a manner such that one-dimensional (1D)square error terms are developed in a representation having, at most,three bits if the terms signify a Euclidian distance, and one bit if theterms signify a Hamming distance. Truncated 1D error term representationsignificantly reduces subsequent error processing complexity because ofthe fewer number of bits.

Likewise, ISI compensation of sample signals, prior to Viterbi decoding,is performed in a DFE, operatively responsive to tentative decisionsmade by the Viterbi. Use of tentative decisions, instead of a Viterbisfinal decision, reduces system latency by a factor directly related tothe path memory sequence distance between the tentative decision used,and the final decision, i.e., if there are N steps in the path memoryfrom input to final decision output, and latency is a function of N,forcing the DFE with a tentative decision at step N−6 causes latency tobecome a function of N−6. A trade-off between latency reduction andaccuracy may be made by choosing a tentative decision step either closerto the final decision point or closer to the initial point.

Computations associated with removing impairments due to intersymbolinterference (ISI) are substantially simplified, in accordance with thepresent invention, by a combination of techniques that involves therecognition that intersymbol interference results from two primarycauses, a partial response pulse shaping filter in a transmitter andfrom the characteristics of a unshielded twisted pair transmissionchannel. During the initial start-up, ISI impairments are processed inindependent portions of electronic circuitry, with ISI caused by apartial response pulse shaping filter being compensated in an inversepartial response filter in a feedforward equalizer (FFE) at systemstartup, and ISI caused by transmission channel characteristicscompensated by a decision feedback equalizer (DFE) operating inconjunction with a multiple decision feedback equalizer (MDFE) stage toprovide ISI pre-compensated signals (representing a symbol) to a decoderstage for symbolic decode. Performing the computations necessary for ISIcancellation in a bifurcated manner allows for fast DFE convergence aswell as assists a transceiver in achieving fast acquisition in a robustand reliable manner. After the start-up, all ISI is compensated by thecombination of the DFE and MDFE.

In order to appreciate the advantages of the present invention, it willbe beneficial to describe the invention in the context of an exemplarybidirectional communication device, such as a gigabit Ethernettransceiver. The particular exemplary implementation chosen is depictedin FIG. 1, which is a simplified block diagram of a multi-paircommunication system operating in conformance with the IEEE 802.3abstandard for one gigabit (Gb/s) Ethernet full-duplex communication overfour twisted pairs of Category-5 copper wires.

The communication system illustrated in FIG. 1 is represented as apoint-to-point system, in order to simplify the explanation, andincludes two main transceiver blocks 102 and 104, coupled together withfour twisted-pair cables. Each of the wire pairs 112 a, b, c, d iscoupled between the transceiver blocks through a respective one of fourline interface circuits 106 and communicate information developed byrespective ones of four transmitter/receiver circuits (constituenttransceivers) 108 coupled between respective interface circuits and aphysical coding sublayer (PCS) block 110. Four constituent transceivers108 are capable of operating simultaneously at 250 megabits per second(Mb/s), and are coupled through respective interface circuits tofacilitate full-duplex bidirectional operation. Thus, one Gb/scommunication throughput of each of the transceiver blocks 102 and 104is achieved by using four 250 Mb/s (125 Megabaud at 2 bits per symbol)constituent transceivers 108 for each of the transceiver blocks and fourtwisted pairs of copper cables to connect the two transceivers together.

FIG. 2 is a simplified block diagram of the functional architecture andinternal construction of an exemplary transceiver block, indicatedgenerally at 200, such as transceiver 102 of FIG. 1. Since theillustrated transceiver application relates to gigabit Ethernettransmission, the transceiver will be referred to as the “gigabittransceiver.” For ease of illustration and description, FIG. 2 showsonly one of the four 250 Mb/s constituent transceivers which areoperating simultaneously (termed herein 4-D operation). However, sincethe operation of the four constituent transceivers are necessarilyinterrelated, certain blocks in the signal lines in the exemplaryembodiment of FIG. 2 perform and carry 4-dimensional (4-D) functions and4-D signals, respectively. By 4-D, it is meant that the data from thefour constituent transceivers are used simultaneously. In order toclarify signal relationships in FIG. 2, thin lines correspond to1-dimensional functions or signals (i.e., relating to only a singletransceiver), and thick lines correspond to 4-D functions or signals(relating to all four transceivers).

With reference to FIG. 2, the gigabit transceiver 200 includes a GigabitMedium Independent Interface (GMII) block 202, a Physical CodingSublayer (PCS) block 204, a pulse shaping filter 206, adigital-to-analog (D/A) converter 208, a line interface block 210, ahighpass filter 212, a programmable gain amplifier (PGA) 214, ananalog-to-digital (A/D) converter 216, an automatic gain control block220, a timing recovery block 222, a pair-swap multiplexer block 224, ademodulator 226, an offset canceller 228, a near-end crosstalk (NEXT)canceller block 230 having three NEXT cancellers, and an echo canceller232. The gigabit transceiver 200 also includes an A/D first-in-first-outbuffer (FIFO) 218 to facilitate proper transfer of data from the analogclock region to the receive clock region, and a FIFO block 234 tofacilitate proper transfer of data from the transmit clock region to thereceive clock region. The gigabit transceiver 200 can optionally includea filter to cancel far-end crosstalk noise (FEXT canceller).

On the transmit path, the transmit section of the GMII block 202receives data from a Media Access Control (MAC) module (not shown inFIG. 2) and passes the digital data to the transmit section 204T of thePCS block 204 via a FIFO 201 in byte-wide format at the rate of 125 MHz.The FIFO 201 is essentially a synchronization buffer device and isprovided to ensure proper data transfer from the MAC layer to thePhysical Coding (PHY) layer, since the transmit clock of the PHY layeris not necessarily synchronized with the clock of the MAC layer. Thissmall FIFO 201 can be constructed with from three to five memory cellsto accommodate the elasticity requirement which is a function of framesize and frequency offset.

The transmit section 204T of the PCS block 204 performs scrambling andcoding of the data and other control functions. Transmit section 204T ofthe PCS block 204 generates four 1D symbols, one for each of the fourconstituent transceivers. The 1D symbol generated for the constituenttransceiver depicted in FIG. 2 is filtered by a partial response pulseshaping filter 206 so that the radiated emission of the output of thetransceiver may fall within the EMI requirements of the FederalCommunications Commission. The pulse shaping filter 206 is constructedwith a transfer function 0.75+0.25z⁻¹, such that the power spectrum ofthe output of the transceiver falls below the power spectrum of a100Base-Tx signal. The 100Base-Tx is a widely used and accepted FastEthernet standard for 100 Mb/s operation on two pairs of category-5twisted pair cables. The output of the pulse shaping filter 206 isconverted to an analog signal by the D/A converter 208 operating at 125MHz. The analog signal passes through the line interface block 210, andis placed on the corresponding twisted pair cable for communication to aremote receiver.

On the receive path, the line interface block 210 receives an analogsignal from the twisted pair cable. The received analog signal ispreconditioned by a highpass filter 212 and a programmable gainamplifier (PGA) 214 before being converted to a digital signal by theA/D converter 216 operating at a sampling rate of 125 MHz. Sample timingof the A/D converter 216 is controlled by the output of a timingrecovery block 222 controlled, in turn, by decision and error signalsfrom a demodulator 226. The resulting digital signal is properlytransferred from the analog clock region to the receive clock region byan A/D FIFO 218, an output of which is also used by an automatic gaincontrol circuit 220 to control the operation of the PGA 214.

The output of the A/D FIFO 218, along with the outputs from the A/DFIFOs of the other three constituent transceivers are inputted to apair-swap multiplexer block 224. The pair-swap multiplexer block 224 isoperatively responsive to a 4D pair-swap control signal, asserted by thereceive section 204R of PCS block 204, to sort out the 4 input signalsand send the correct signals to the respective demodulators of the 4constituent transceivers. Since the coding scheme used for the gigabittransceivers 102, 104 (referring to FIG. 1) is based on the fact thateach twisted pair of wire corresponds to a 1D constellation, and thatthe four twisted pairs, collectively, form a 4D constellation, forsymbol decoding to function properly, each of the four twisted pairsmust be uniquely identified with one of the four dimensions. Anyundetected swapping of the four pairs would necessarily result inerroneous decoding. Although described as performed by the receivesection 204R of PCS block 204 and the pair-swap multiplexer block 224,in the exemplary embodiment of FIG. 2, the pair-swapping control mightalternatively be performed by the demodulator 226.

Demodulator 226 receives the particular received signal 2 intended forit from the pair-swap multiplexer block 224, and functions to demodulateand decode the signal prior to directing the decoded symbols to the PCSlayer 204 for transfer to the MAC. The demodulator 226 includes amulti-component feedforward equalizer (FFE) 26, having its outputcoupled to a de-skew memory circuit 36 and a trellis decoder 38. The FFE26 is multi-component in the sense that it includes a pulse shapingfilter 28, a programmable inverse partial response (IPR) filter 30, asumming device 32, and an adaptive gain stage 34. Functionally, the FFE26 might be characterized as a least-mean-squares (LMS) type adaptivefilter which performs channel equalization as described in thefollowing.

Pulse shaping filter 28 is coupled to receive an input signal 2 from thepair swap MUX 224 and functions to generate a precursor to the inputsignal 2. Used for timing recovery, the precursor might be aptlydescribed as a zero-crossing inserted at a precursor position of thesignal. Such a zero-crossing assists a timing recovery circuit indetermining phase relationships between signals, by giving the timingrecovery circuit an accurately determinable signal transition point foruse as a reference. The pulse shaping filter 28 can be placed anywherebefore the decoder block 38. In the exemplary embodiment of FIG. 2, thepulse shaping filter 28 is positioned at the input of the FFE 26.

The pulse shaping filter 28 transfer function may be represented by afunction of the form −Υ+z⁻¹, Υ to 1/16 for short cables (less than 80meters) and ⅛ for long cables (more than 80 m). The determination of thelength of a cable is based on the gain of the coarse PGA section 14 ofthe PGA 214.

A programmable inverse partial response (IPR) filter 30 is coupled toreceive the output of the pulse shaping filter 28, and functions tocompensate the ISI introduced by the partial response pulse shaping inthe transmitter section of the remote transceiver which transmitted theanalog equivalent of the digital signal 2. The IPR filter 30 transferfunction may be represented by a function of the form 1/(1+Kz⁻¹) and mayalso be described as dynamic. In particular, the filter's K value isdynamically varied from an initial non-zero setting, valid at systemstart-up, to a final setting. K may take any positive value strictlyless than 1. In the illustrated embodiment, K might take on a value ofabout 0.484375 during startup, and be dynamically ramped down to zeroafter convergence of the decision feedback equalizer included inside thetrellis decoder 38.

The foregoing is particularly advantageous in high-speed data recoverysystems, since by compensating the transmitter induced ISI at start-up,prior to decoding, it reduces the amount of processing required by thedecoder to that required only for compensating transmission channelinduced ISI. This “bifurcated” or divided ISI compensation processallows for fast acquisition in a robust and reliable manner. After DFEconvergence, noise enhancement in the feedforward equalizer 26 isavoided by dynamically ramping the feedback gain factor K of the IPRfilter 30 to zero, effectively removing the filter from the activecomputational path.

A summing device 32 subtracts from the output of the IPR filter 30 thesignals received from the offset canceller 228, the NEXT cancellers 230,and the echo canceller 232. The offset canceller 228 is an adaptivefilter which generates an estimate of the offset introduced at theanalog front end which includes the PGA 214 and the A/D converter 216.Likewise, the three NEXT cancellers 230 are adaptive filters used formodeling the NEXT impairments in the received signal caused by thesymbols sent by the three local transmitters of the other threeconstituent transceivers. The impairments are due to a near-endcrosstalk mechanism between the pairs of cables. Since each receiver hasaccess to the data transmitted by the other three local transmitters, itis possible to nearly replicate the NEXT impairments through filtering.Referring to FIG. 2, the three NEXT cancellers 230 filter the signalssent by the PCS block 204 to the other three local transmitters andproduce three signals replicating the respective NEXT impairments. Bysubtracting these three signals from the output of the IPR filter 30,the NEXT impairments are approximately cancelled.

Due to the bi-directional nature of the channel, each local transmittercauses an echo impairment on the received signal of the local receiverwith which it is paired to form a constituent transceiver. The echocanceller 232 is an adaptive filter used for modeling the echoimpairment. The echo canceller 232 filters the signal sent by the PCSblock 204 to the local transmitter associated with the receiver, andproduces a replica of the echo impairment. By subtracting this replicasignal from the output of the IPR filter 30, the echo impairment isapproximately cancelled.

Following NEXT, echo and offset cancellation, the signal is coupled toan adaptive gain stage 34 which functions to fine tune the gain of thesignal path using a zero-forcing LMS algorithm. Since this adaptive gainstage 34 trains on the basis of errors of the adaptive offset, NEXT andecho cancellation filters 228, 230 and 232 respectively, it provides amore accurate signal gain than the PGA 214.

The output of the adaptive gain stage 34, which is also the output ofthe FFE 26, is inputted to a de-skew memory 36. The de-skew memory 36 isa four-dimensional function block, i.e., it also receives the outputs ofthe three FFEs of the other three constituent transceivers as well asthe output of FFE 26 illustrated in FIG. 2. There may be a relative skewin the outputs of the 4 FFEs, which are the 4 signal samplesrepresenting the 4 symbols to be decoded. This relative skew can be upto 50 nanoseconds, and is due to the variations in the way the copperwire pairs are twisted. In order to correctly decode the four symbols,the four signal samples must be properly aligned. The de-skew memory isresponsive to a 4D de-skew control signal asserted by the PCS block 204to de-skew and align the four signal samples received from the fourFFEs. The four de-skewed signal samples are then directed to the trellisdecoder 38 for decoding.

Data received at the local transceiver was encoded, prior totransmission by a remote transceiver, using an 8-state four-dimensionaltrellis code. In the absence of inter-symbol interference (ISI), aproper 8-state Viterbi decoder would provide optimal decoding of thiscode. However, in the case of Gigabit Ethernet, the Category-5 twistedpair cable introduces a significant amount of ISI. In addition, as wasdescribed above in connection with the FFE stage 26, the partialresponse filter of the remote transmitter on the other end of thecommunication channel also contributes a certain component of ISI.Therefore, during nominal operation, the trellis decoder 38 must decodeboth the trellis code and compensate for at least transmission channelinduced ISI, at a substantially high computational rate, correspondingto a symbol rate of about 125 Mhz.

In the illustrated embodiment of the gigabit transceiver of FIG. 2, thetrellis decoder 38 suitably includes an 8-state Viterbi decoder forsymbol decoding, and incorporates circuitry which implements adecision-feedback sequence estimation approach in order to compensatethe ISI components perturbing the signal which represents transmittedsymbols. The 4D output 40 of the trellis decoder 38 is provided to thereceive section 204R of the PCS block. The receive section 204R of PCSblock de-scrambles and further decodes the symbol stream and then passesthe decoded packets and idle stream to the receive section of the GMIIblock 202 for transfer to the MAC module.

The 4D outputs 42 and 44, which represent the error and tentativedecision signals defined by the decoder, respectively, are provided tothe timing recovery block 222, whose output controls the sampling timeof the A/D converter 216. One of the four components of the error 42 andone of the four components of the tentative decision 44 correspond tothe signal stream pertinent to the particular receiver section,illustrated in FIG. 2, and are provided to the adaptive gain stage 34 toadjust the gain of the signal path.

The component 42A of the 4D error 42, which corresponds to the receivershown in FIG. 2, is further provided to the adaptation circuitry of eachof the adaptive offset, NEXT and echo cancellation filters 228, 230,232. Adaptation circuitry evaluates the content of the error componentand, initially, adapts the filter's training process to develop suitablefilter coefficient values. During nominal operation, adaptationcircuitry monitors the error component and provides periodic updates tothe filter coefficients in response thereto.

As implemented in the exemplary Ethernet gigabit transceiver, thetrellis decoder 38 functions to decode symbols that have been encoded inaccordance with the trellis code specified in the IEEE 802.3ab standard(1000BASE-T, or gigabit). As mentioned above, information signals arecommunicated between transceivers at a symbol rate of about 125 Mhz, oneach of the pairs of twisted copper cables that make up the transmissionchannel. In accordance with established Ethernet communicationprotocols, information signals are modulated for transmission inaccordance with a 5-level Pulse Amplitude Modulation (PAM-5) modulationscheme. Thus, since information signals are represented by fiveamplitude levels, it will be understood that symbols can be expressed ina three bit representation on each twisted wire pair.

Turning now to FIGS. 4A and 4B, an exemplary PAM-5 constellation isdepicted in FIG. 4A which also depicts the one-dimensional symbol subsetpartitioning within the constellation. As illustrated in FIG. 4A, theconstellation is a representation of five amplitude levels, +2, +1, 0,−1, −2, in decreasing order. Symbol subset partitioning occurs bydividing the five levels into two 1D subsets, X and Y, and assigning Xand Y subset designations to the five levels on an alternating basis.Thus +2, 0 and −2 are assigned to the Y subset; +1 and −1 are assignedto the X subset. The partitioning could, of course, be reversed, with +1and −1 being assigned a Y designation.

It should be recognized that although the X and Y subsets representdifferent absolute amplitude levels, the vector distance betweenneighboring amplitudes within the subsets are the same, i.e., two (2).The X subset therefore includes amplitude level designations whichdiffer by a value of two, (−1, +1), as does the Y subset (−2, 0, +2).This partitioning offers certain advantages to slicer circuitry in adecoder, as will be developed further below.

In FIG. 4B, the 1D subsets have been combined into 4D subsetsrepresenting the four twisted pairs of the transmission channel. Since1D subset definition is binary (X:Y) and there are four wire pairs,there are sixteen possible combinations of 4D subsets. These sixteenpossible combinations are assigned into eight 4D subsets, s0 to s7inclusive, in accordance with a trellis coding scheme. Each of the 4Dsubsets (also termed code subsets) are constructed of a union of twocomplementary 4D sub-subsets, e.g., code-subset three (identified as s3)is the union of sub-subset X:X:Y:X and its complementary image Y:Y:X:Y.

Data being processed for transmission is encoded using the abovedescribed 4-dimensional (4D) 8-state trellis code, in an encodercircuit, such as illustrated in the exemplary block diagram of FIG. 6,according to an encoding algorithm specified in the 1000BASE-T standard.Referring to FIG. 6, an exemplary encoder 300, which is commonlyprovided in the transmit PCS portion of a gigabit transceiver, might berepresented in simplified form as a convolutional encoder 302 incombination with a signal mapper 304. Data received by the transmit PCSfrom the MAC module via the transmit gigabit medium independentinterface are encoded with control data and scrambled, resulting in aneight bit data word represented by input bits D₀ through D₇ which areintroduced to the signal mapper 304 of the encoder 300 at a data rate ofabout 125 MHz. The two least significant bits, D₀ and D₁, are alsoinputted, in parallel fashion, into a convolutional encoder 302,implemented as a linear feedback shift register, in order to generate aredundancy bit C which is a necessary condition for the provision of thecoding gain of the code.

As described above, the convolutional encoder 302 is a linear feedbackshift register, constructed of three delay elements 303, 304 and 305(conventionally denoted by z⁻¹) interspersed with and separated by twosumming circuits 307 and 308 which function to combine the two leastsignificant bits (LSBs), D₀ and D₁, of the input word with the output ofthe first and second delay elements, 303 and 304 respectively. The twotime sequences formed by the streams of the two LSBs are convolved withthe coefficients of the linear feedback shift register to produce thetime sequence of the redundancy bit C. Thus, the convolutional encodermight be viewed as a state machine.

The signal mapper 304 maps the 9 bits (D₀-D₇ and C) into a particular4-dimensional constellation point. Each of the four dimensions uniquelycorresponds to one of the four twisted wire pairs. In each dimension,the possible symbols are from the symbol set {−2, −1, 0, +1, +2}. Thesymbol set is partitioned into two disjoint symbol subsets X and Y, withX={−1, +1} and Y={−2, 0, +2}, as described above and shown in FIG. 4A.

Referring to FIG. 4B, the eight code subsets s0 through s7 define theconstellation of the code in the signal space. Each of the code subsetsis formed by the union of two code sub-subsets, each of the codesub-subsets being formed by 4D patterns obtained from concatenation ofsymbols taken from the symbol subsets X and Y. For example, the codesubset s0 is formed by the union of the 4D patterns from the 4D codesub-subsets XXXX and YYYY. It should be noted that the distance betweenany two arbitrary even (respectively, odd) code-subsets is √{square rootover (2)}. It should be further noted that each of the code subsets isable to define at least 72 constellation points. However, only 64constellation points in each code subset are recognized as codewords ofthe trellis code specified in the 1000BASE-T standard.

This reduced constellation is termed the pruned constellation.Hereinafter, the term “codeword” is used to indicate a 4D symbol thatbelongs to the pruned constellation. A valid codeword is part of a validpath in the trellis diagram.

Referring now to FIG. 6 and with reference to FIGS. 4A and 4B, inoperation, the signal mapper 304 uses the 3 bits D₁, D₀ and C to selectone of the code subsets s0-s7, and uses the 6 MSB bits of the inputsignal, D₂-D₇ to select one of 64 particular points in the selected codesubset. These 64 particular points of the selected coded subsetcorrespond to codewords of the trellis code. The signal mapper 304outputs the selected 4D constellation point 306 which will be placed onthe four twisted wire pairs after pulse shape filtering anddigital-to-analog conversion.

FIG. 5 shows the trellis diagram for the trellis code specified in the1000BASE-T standard. In the trellis diagram, each vertical column ofnodes represents the possible states that the encoder 300 (FIG. 6) canassume at a point in time. It is noted that the states of the encoder300 are dictated by the states of the convolutional encoder 302 (FIG.6). Since the convolutional encoder 302 has three delay elements, thereare eight distinct states. Successive columns of nodes represent thepossible states that might be defined by the convolutional encoder statemachine at successive points in time.

Referring to FIG. 5, the eight distinct states of the encoder 300 areidentified by numerals 0 through 7, inclusive. From any given currentstate, each subsequent transmitted 4D symbol must correspond to atransition of the encoder 300 from the given state to a permissiblesuccessor state. For example, from the current state 0 (respectively,from current states 2, 4, 6), a transmitted 4D symbol taken from thecode subset s0 corresponds to a transition to the successor state 0(respectively, to successor states 1, 2 or 3). Similarly, from currentstate 0, a transmitted 4D symbol taken from code subset s2(respectively, code subsets s4, s6) corresponds to a transition tosuccessor state 1 (respectively, successor states 2, 3).

Familiarity with the trellis diagram of FIG. 5, illustrates that fromany even state (i.e., states 0, 2, 4 or 6), valid transitions can onlybe made to certain ones of the successor states, i.e., states 0, 1, 2 or3. From any odd state (states 1, 3, 5 or 7), valid transitions can onlybe made to the remaining successor states, i.e., states 4, 5, 6 or 7.Each transition in the trellis diagram, also called a branch, may bethought of as being characterized by the predecessor state (the state itleaves), the successor state (the state it enters) and the correspondingtransmitted 4D symbol. A valid sequence of states is represented by apath through the trellis which follows the above noted rules. A validsequence of states corresponds to a valid sequence of transmitted 4Dsymbols.

At the receiving end of the communication channel, the trellis decoder38 uses the methodology represented by the trellis diagram of FIG. 5 todecode a sequence of received signal samples into their symbolicrepresentation, in accordance with the well known Viterbi algorithm. Atraditional Viterbi decoder processes information signals iteratively,on an information frame by information frame basis (in the GigabitEthernet case, each information frame is a 4D received signal samplecorresponding to a 4D symbol), tracing through a trellis diagramcorresponding to the one used by the encoder, in an attempt to emulatethe encoders behavior. At any particular frame time, the decoder is notinstantaneously aware of which node (or state) the encoder has reached,thus, it does not try to decode the node at that particular frame time.Instead, given the received sequence of signal samples, the decodercalculates the most likely path to every node and determines thedistance between each of such paths and the received sequence in orderto determine a quantity called the path metric.

In the next frame time, the decoder determines the most likely path toeach of the new nodes of that frame time. To get to any one of the newnodes, a path must pass through one of the old nodes. Possible paths toeach new node are obtained by extending to this new node each of the oldpaths that are allowed to be thus extended, as specified by the trellisdiagram. In the trellis diagram of FIG. 5, there are four possible pathsto each new node. For each new node, the extended path with the smallestpath metric is selected as the most likely path to this new node.

By continuing the above path-extending process, the decoder determines aset of surviving paths to the set of nodes at the nth frame time. If allof the paths pass through the same node at the first frame time, thenthe traditional decoder knows which most likely node the encoder enteredat the first frame time, regardless of which node the encoder entered atthe nth frame time. In other words, the decoder knows how to decode thereceived information associated with the first frame time, even thoughit has not yet made a decision for the received information associatedwith the nth frame time. At the nth frame time, the traditional decoderexamines all surviving paths to see if they pass through the same firstbranch in the first frame time. If they do, then the valid symbolassociated with this first branch is outputted by the decoder as thedecoded information frame for the first frame time. Then, the decoderdrops the first frame and takes in a new frame for the next iteration.Again, if all surviving paths pass through the same node of the oldestsurviving frame, then this information frame is decoded. The decodercontinues this frame-by-frame decoding process indefinitely so long asinformation is received.

The number of symbols that the decoder can store is called thedecoding-window width. The decoder must have a decoding window widthlarge enough to ensure that a well-defined decision will almost alwaysbe made at a frame time. As discussed later in connection with FIGS. 13and 14, the decoding window width of the trellis decoder 38 of FIG. 2 is10 symbols. This length of the decoding window is selected based onresults of computer simulation of the trellis decoder 38.

A decoding failure occurs when not all of the surviving paths to the setof nodes at frame time n pass through a common first branch at frametime 0. In such a case, the traditional decoder would defer making adecision and would continue tracing deeper in the trellis. This wouldcause unacceptable latency for a high-speed system such as the gigabitEthernet transceiver. Unlike the traditional decoder, the trellisdecoder 38 of the present invention does not check whether the survivingpaths pass through a common first branch. Rather, the trellis decoder,in accordance with the invention, makes an assumption that the survivingpaths at frame time n pass through such a branch, and outputs a decisionfor frame time 0 on the basis of that assumption. If this decision isincorrect, the trellis decoder 38 will necessarily output a fewadditional incorrect decisions based on the initial perturbation, butwill soon recover due to the nature of the particular relationshipbetween the code and the characteristics of the transmission channel. Itshould, further, be noted that this potential error introduction sourceis relatively trivial in actual practice, since the assumption made bythe trellis decoder 38 that all the surviving paths at frame time n passthrough a common first branch at frame time 0 is a correct one to a veryhigh statistical probability.

FIG. 3 is a simplified block diagram of the construction details of anexemplary trellis decoder such as described in connection with FIG. 2.The exemplary trellis decoder (again indicated generally at 38) isconstructed to include a multiple decision feedback equalizer (MDFE)602, Viterbi decoder circuitry 604, a path metrics module 606, a pathmemory module 608, a select logic 610, and a decision feedback equalizer612. In general, a Viterbi decoder is often thought of as including thepath metrics module and the path memory module. However, because of theunique arrangement and functional operation of the elements of theexemplary trellis decoder 38, the functional element which performs theslicing operation will be referred to herein as Viterbi decodercircuitry, a Viterbi decoder, or colloquially a Viterbi.

The Viterbi decoder circuitry 604 performs 4D slicing of signalsreceived at the Viterbi inputs 614, and computes the branch metrics. Abranch metric, as the term is used herein, is well known and refers toan elemental path between neighboring Trellis nodes. A plurality ofbranch metrics will thus be understood to make up a path metric. Anextended path metric will be understood to refer to a path metric, whichis extended by a next branch metric to thereby form an extension to thepath. Based on the branch metrics and the previous path metricsinformation 618 received from the path metrics module 606, the Viterbidecoder 604 extends the paths and computes the extended path metrics 620which are returned to the path metrics module 606. The Viterbi decoder604 selects the best path incoming to each of the eight states, updatesthe path memory stored in the path memory module 608 and the pathmetrics stored in the path metrics module 606.

In the traditional Viterbi decoding algorithm, the inputs to a decoderare the same for all the states of the code. Thus, a traditional Viterbidecoder would have only one 4D input for a 4D 8-state code. In contrast,and in accordance with the present invention, the inputs 614 to theViterbi decoder 604 are different for each of the eight states. This isthe result of the fact the Viterbi inputs 614 are defined by feedbacksignals generated by the MDFE 602 and are different for each of theeight paths (one path per state) of the Viterbi decoder 604, as will bediscussed later.

There are eight Viterbi inputs 614 and eight Viterbi decisions 616, eachcorresponding to a respective one of the eight states of the code. Eachof the eight Viterbi inputs 614, and each of the decision outputs 618,is a 4-dimensional vector whose four components are the Viterbi inputsand decision outputs for the four constituent transceivers,respectively. In other words, the four components of each of the eightViterbi inputs 614 are associated with the four pairs of the Category-5cable. The four components are a received word that corresponds to avalid codeword. From the foregoing, it should be understood thatdetection (decoding, demodulation, and the like) of information signalsin a gigabit system is inherently computationally intensive. When it isfurther realized that received information must be detected at a veryhigh speed and in the presence of ISI channel impairments, thedifficulty in achieving robust and reliable signal detection will becomeapparent.

In accordance with the present invention, the Viterbi decoder 604detects a non-binary word by first producing a set of one-dimensional(1D) decisions and a corresponding set of 1D errors from the 4D inputs.By combining the 1D decisions with the 1D errors, the decoder produces aset of 4D decisions and a corresponding set of 4D errors. Hereinafter,this generation of 4D decisions and errors from the 4D inputs isreferred to as 4D slicing. Each of the 1D errors represents the distancemetric between one 1D component of the eight 4D-inputs and a symbol inone of the two disjoint symbol-subsets X, Y. Each of the 4D errors isthe distance between the received word and the corresponding 4D decisionwhich is a codeword nearest to the received word with respect to one ofthe code-subsets si, where i=0, . . . 7.

4D errors may also be characterized as the branch metrics in the Viterbialgorithm. The branch metrics are added to the previous values of pathmetrics 618 received from the path metrics module 606 to form theextended path metrics 620 which are then stored in the path metricsmodule 606, replacing the previous path metrics. For any one given stateof the eight states of the code, there are four incoming paths. For agiven state, the Viterbi decoder 604 selects the best path, i.e., thepath having the lowest metric of the four paths incoming to that state,and discards the other three paths. The best path is saved in the pathmemory module 608. The metric associated with the best path is stored inthe path metrics module 606, replacing the previous value of the pathmetric stored in that module.

In the following, the 4D slicing function of the Viterbi decoder 604will be described in detail. 4D slicing may be described as beingperformed in three sequential steps. In a first step, a set of 1Ddecisions and corresponding 1D errors are generated from the 4D Viterbiinputs. Next, the 1D decisions and 1D errors are combined to form a setof 2D decisions and corresponding 2D errors. Finally, the 2D decisionsand 2D errors are combined to form 4D decisions and corresponding 4Derrors.

FIG. 7 is a simplified, conceptual block diagram of a first exemplaryembodiment of a 1D slicing function such as might be implemented by theViterbi decoder 604 of FIG. 3. Referring to FIG. 7, a 1D component 702of the eight 4D Viterbi inputs (614 of FIG. 3) is sliced, i.e.,detected, in parallel fashion, by a pair of 1D slicers 704 and 706 withrespect to the X and Y symbol-subsets. Each slicer 704 and 706 outputs arespective 1D decision 708 and 710 with respect to the appropriaterespective symbol-subset X, Y and an associated squared error value 712and 714. Each 1D decision 708 or 710 is the symbol which is closest tothe 1D input 702 in the appropriate symbol-subset X and Y, respectively.The squared error values 712 and 714 each represent the square of thedifference between the 1D input 702 and their respective 1D decisions708 and 710.

The 1D slicing function shown in FIG. 7 is performed for all fourconstituent transceivers and for all eight states of the trellis code inorder to produce one pair of 1D decisions per transceiver and per state.Thus, the Viterbi decoder 604 has a total of 32 pairs of 1D slicersdisposed in a manner identical to the pair of slicers 704, 706illustrated in FIG. 7.

FIG. 8 is a simplified block diagram of a second exemplary embodiment ofcircuitry capable of implementing a 1D slicing function suitable forincorporation in the Viterbi decoder 604 of FIG. 5. Referring to FIG. 8,the 1D component 702 of the eight 4D Viterbi inputs is sliced, i.e.,detected, by a first pair of 1D slicers 704 and 706, with respect to theX and Y symbol-subsets, and also by a 5-level slicer 805 with respect tothe symbol set which represents the five levels (+2, +1, 0, −1, −2) ofthe constellation, i.e., a union of the X and Y symbol-subsets. As inthe previous case described in connection with FIG. 7, the slicers 704and 706 output 1D decisions 708 and 710. The 1D decision 708 is thesymbol which is nearest the 1D input 702 in the symbol-subset X, while1D decision 710 corresponds to the symbol which is nearest the 1D input702 in the symbol-subset Y. The output 807 of the 5-level slicer 805corresponds to the particular one of the five constellation symbolswhich is determined to be closest to the 1D input 702.

The difference between each decision 708 and 710 and the 5-level sliceroutput 807 is processed, in a manner to be described in greater detailbelow, to generate respective quasi-squared error terms 812 and 814. Incontrast to the 1D error terms 712, 714 obtained with the firstexemplary embodiment of a 1D slicer depicted in FIG. 7, the 1D errorterms 812, 814 generated by the exemplary embodiment of FIG. 8 are moreeasily adapted to discerning relative differences between a 1D decisionand a 1D Viterbi input.

In particular, the slicer embodiment of FIG. 7 may be viewed asperforming a “soft decoded,” with 1D error terms 712 and 714 representedby Euclidian metrics. The slicer embodiment depicted in FIG. 8 may beviewed as performing a “hard decode,” with its respective 1D error terms812 and 814 expressed in Hamming metrics (i.e., 1 or 0). Thus, there isless ambiguity as to whether the 1D Viterbi input is closer to the Xsymbol subset or to the Y symbol subset. Furthermore, Hamming metricscan be expressed in a fewer number of bits, than Euclidian metrics,resulting in a system that is substantially less computationally complexand substantially faster.

In the exemplary embodiment of FIG. 8, error terms are generated bycombining the output of the five level slicer 805 with the outputs ofthe 1D slicers 704 and 706 in respective adder circuits 809A and 809B.The outputs of the adders are directed to respective squared magnitudeblocks 811A and 811B which generate the binary squared error terms 812and 814, respectively.

Implementation of squared error terms by use of circuit elements such asadders 809A, 809B and the magnitude squared blocks 811A, 811B is donefor descriptive convenience and conceptual illustration purposes only.In practice, squared error term definition is implemented with a look-uptable that contains possible values for error-X and error-Y for a givenset of decision-X, decision-Y and Viterbi input values. The look-uptable can be implemented with a read-only-memory device oralternatively, a random logic device or PLA. Examples of look-up tables,suitable for use in practice of the present invention, are illustratedin FIGS. 17, 18A and 18B.

The 1D slicing function exemplified in FIG. 8 is performed for all fourconstituent transceivers and for all eight states of the trellis code inorder to produce one pair of 1D decisions per transceiver and per state.Thus, the Viterbi decoder 604 has a total of thirty two pairs of 1Dslicers that correspond to the pair of slicers 704, 706, and thirty two5-level slicers that correspond to the 5-level slicer 805 of FIG. 8.

Each of the 1D errors is represented by substantially fewer bits thaneach 1D component of the 4D inputs. For example, in the embodiment ofFIG. 7, the 1D component of the 4D Viterbi input is represented by 5bits, while the 1D error is represented by 2 or 3 bits. Traditionally,proper soft decision decoding of such a trellis code would require thatthe distance metric (Euclidean distance) be represented by 6 to 8 bits.One advantageous feature of the present invention is that only 2 or 3bits are required for the distance metric in soft decision decoding ofthis trellis code.

In the embodiment of FIG. 8, the 1D error can be represented by just 1bit. It is noted that, since the 1D error is represented by 1 bit, thedistance metric used in this trellis decoding is no longer the Euclideandistance, which is usually associated with trellis decoding, but isinstead the Hamming distance, which is usually associated with harddecision decoding of binary codewords. This is another particularlyadvantageous feature of the present invention.

FIG. 9 is a block diagram illustrating the generation of the 2D errorsfrom the 1D errors for twisted pairs A and B (corresponding toconstituent transceivers A and B). Since the generation of errors issimilar for twisted pairs C and D, this discussion will only concernitself with the A:B 2D case. It will be understood that the discussionis equally applicable to the C:D 2D case with the appropriate change innotation. Referring to FIG. 9, 1D error signals 712A, 712B, 714A, 714Bmight be produced by the exemplary 1D slicing functional blocks shown inFIG. 7 or 8. The 1D error term signal 712A (or respectively, 712B) isobtained by slicing, with respect to symbol-subset X, the 1D componentof the 4D Viterbi input, which corresponds to pair A (or respectively,pair B). The 1D error term 714A (respectively, 714B) is obtained byslicing, with respect to symbol-subset Y, the 1D component of the 4DViterbi input, which corresponds to pair A (respectively, B). The 1Derrors 712A, 712B, 714A, 714B are added according to all possiblecombinations (XX, XY, YX and YY) to produce 2D error terms 902AB, 904AB,906AB, 908AB for pairs A and B. Similarly, the 1D errors 712C, 712D,714C, 714D (not shown) are added according to the four differentsymbol-subset combinations XX, XY, YX and YY) to produce corresponding2D error terms for wire pairs C and D.

FIG. 10 is a block diagram illustrating the generation of the 4D errorsand extended path metrics for the four extended paths outgoing fromstate 0. Referring to FIG. 10, the 2D errors 902AB, 902CD, 904AB, 904CD,906AB, 906CD, 908AB, 908CD are added in pairs according to eightdifferent combinations to produce eight intermediate 4D errors 1002,1004, 1006, 1008, 1010, 1012, 1014, 1016. For example, the 2D error902AB, which is the squared error with respect to XX from pairs A and B,are added to the 2D error 902CD, which is the squared error with respectto XX from pairs C and D, to form the intermediate 4D error 1002 whichis the squared error with respect to sub-subset XXXX for pairs A, B, Cand D. Similarly, the intermediate 4D error 1004 which corresponds tothe squared error with respect to sub-subset YYYY is formed from the 2Derrors 908AB and 908CD.

The eight intermediate 4D errors are grouped in pairs to correspond tothe code subsets s0, s2, s4 and s6 represented in FIG. 4B. For example,the intermediate 4D errors 1002 and 1004 are grouped together tocorrespond to the code subset s0 which is formed by the union of theXXXX and YYYY sub-subsets. From each pair of intermediate 4D errors, theone with the lowest value is selected (the other one being discarded) inorder to provide the branch metric of a transition in the trellisdiagram from state 0 to a subsequent state. It is noted that, accordingto the trellis diagram, transitions from an even state (i.e., 0, 2, 4and 6) are only allowed to be to the states 0, 1, 2 and 3, andtransitions from an odd state (i.e., 1, 3, 5 and 7) are only allowed tobe to the states 4, 5, 6 and 7. Each of the index signals 1026, 1028,1030, 1032 indicates which of the 2 sub-subsets the selectedintermediate 4D error corresponds to. The branch metrics 1018, 1020,1022, 1024 are the branch metrics for the transitions in the trellisdiagram of FIG. 5 associated with code-subsets s0, s2, s4 and s6respectively, from state 0 to states 0, 1, 2 and 3, respectively. Thebranch metrics are added to the previous path metric 1000 for state 0 inorder to produce the extended path metrics 1034, 1036, 1038, 1040 of thefour extended paths outgoing from state 0 to states 0, 1, 2 and 3,respectively.

Associated with the eight intermediate 4D errors 1002, 1004, 1006, 1008,1010, 1012, 1014, 1016 are the 4D decisions which are formed from the 1Ddecisions made by one of the exemplary slicer embodiments of FIG. 7 or8. Associated with the branch metrics 1018, 1020, 1022, 1024 are the 4Dsymbols derived by selecting the 4D decisions using the index outputs1026, 1028, 1030, 1032.

FIG. 11 shows the generation of the 4D symbols associated with thebranch metrics 1018, 1020, 1022, 1024. Referring to FIG. 11, the 1Ddecisions 708A, 708B, 708C, 708D are the 1D decisions with respect tosymbol-subset X (as shown in FIG. 7) for constituent transceivers A, B,C, D, respectively, and the 1D decisions 710A, 710, 710C, 710D are the1D decisions with respect to symbol-subset Y for constituenttransceivers A, B, C and D, respectively. The 1D decisions areconcatenated according to the combinations which correspond to a left orright hand portion of the code subsets s0, s2, s4 and s6, as depicted inFIG. 4B. For example, the 1D decisions 708A, 708B, 708C, 708D areconcatenated to correspond to the left hand portion, XXXX, of the codesubset s0. The 4D decisions are grouped in pairs to correspond to theunion of symbol-subset portions making up the code subsets s0, s2, s4and s6. In particular, the 4D decisions are grouped together tocorrespond to the code subset s0 which is formed by the union of theXXXX and YYYY subset portions.

Referring to FIG. 11, the pairs of 4D decisions are inputted to themultiplexers 1120, 1122, 1124, 1126 which receive the index signals1026, 1028, 1030, 1032 (FIG. 10) as select signals. Each of themultiplexers selects from a pair of the 4D decisions, the 4D decisionwhich corresponds to the sub-subset indicated by the corresponding indexsignal and outputs the selected 4D decision as the 4D symbol for thebranch whose branch metric is associated with the index signal. The 4Dsymbols 1130, 1132, 1134, 1136 correspond to the transitions in thetrellis diagram of FIG. 5 associated with code-subsets s0, s2, s4 and s6respectively, from state 0 to states 0, 1, 2 and 3, respectively. Eachof the 4D symbols 1130, 1132, 1134, 1136 is the codeword in thecorresponding code-subset (s0, s2, s4 and s6) which is closest to the 4DViterbi input for state 0 (there is a 4D Viterbi input for each state).The associated branch metric (FIG. 10) is the 4D squared distancebetween the codeword and the 4D Viterbi input for state 0.

FIG. 12 illustrates the selection of the best path incoming to state 0.The extended path metrics of the four paths incoming to state 0 fromstates 0, 2, 4 and 6 are inputted to the comparator module 1202 whichselects the best path, i.e., the path with the lowest path metric, andoutputs the Path 0 Select signal 1206 as an indicator of this pathselection, and the associated path metric 1204.

The procedure described above for processing a 4D Viterbi input forstate 0 of the code to obtain four branch metrics, four extended pathmetrics, and four corresponding 4D symbols is similar for the otherstates. For each of the other states, the selection of the best pathfrom the four incoming paths to that state is also similar to theprocedure described in connection with FIG. 12.

The above discussion of the computation of the branch metrics,illustrated by FIG. 7 through 11, is an exemplary application of themethod for slicing (detecting) a received L-dimensional word and forcomputing the distance of the received L-dimensional word from acodeword, for the particular case where L is equal to 4.

In general terms, i.e., for any value of L greater than 2, the methodcan be described as follows. The codewords of the trellis code areconstellation points chosen from 2^(L−1) code-subsets. A codeword is aconcatenation of L symbols selected from two disjoint symbol-subsets andis a constellation point belonging to one of the 2^(L−1) code-subsets.At the receiver, L inputs are received, each of the L inputs uniquelycorresponding to one of the L dimensions. The received word is formed bythe L inputs. To detect the received word, 2^(L−1) identical input setsare formed by assigning the same L inputs to each of the 2^(L−1) inputsets. Each of the L inputs of each of the 2^(L−1) input sets is slicedwith respect to each of the two disjoint symbol-subsets to produce anerror set of 2L one-dimensional errors for each of the 2^(L−1)code-subsets. For the particular case of the trellis code of the typedescribed by the trellis diagram of FIG. 5, the one-dimensional errorsare combined within each of the 2^(L−1) error sets to produce 2^(L−2)L-dimensional errors for the corresponding code-subset such that each ofthe 2^(L−2) L-dimensional errors is a distance between the received wordand one of the codewords in the corresponding code-subset.

One embodiment of this combining operation can be described as follows.First, the 2L one-dimensional errors are combined to produce 2Ltwo-dimensional errors (FIG. 9). Then, the 2L two-dimensional errors arecombined to produce 2^(L) intermediate L-dimensional errors which arearranged into 2^(L−1) pairs of errors such that these pairs of errorscorrespond one-to-one to the 2^(L−1) code-subsets (FIG. 10, signals 1002through 1016). A minimum is selected for each of the 2¹⁻¹ pairs oferrors (FIG. 10, signals 1026, 1028, 1030, 1032). These minima are the2^(L−1) L-dimensional errors. Due to the constraints on transitions fromone state to a successor state, as shown in the trellis diagram of FIG.5, only half of the 2^(L−1) L-dimensional errors correspond to allowedtransitions in the trellis diagram. These 2^(L−2) L-dimensional errorsare associated with 2^(L−2) L-dimensional decisions. Each of the 2^(L−2)L-dimensional decisions is a codeword closest in distance to thereceived word (the distance being represented by one of the 2^(L−2)L-dimensional errors), the codeword being in one of half of the 2¹⁻¹code-subsets, i.e., in one of 2^(L−2) code-subsets of the 2^(L−1)code-subsets (due to the particular constraint of the trellis codedescribed by the trellis diagram of FIG. 5).

It is important to note that the details of the combining operation onthe 2L one-dimensional errors to produce the final L-dimensional errorsand the number of the final L-dimensional errors are functions of aparticular trellis code. In other words, they vary depending on theparticular trellis code.

FIG. 13 illustrates the construction of the path memory module 608 asimplemented in the embodiment of FIG. 6. The path memory module 608includes a path memory for each of the eight paths. In the illustratedembodiment of the invention, the path memory for each path isimplemented as a register stack, ten levels in depth. At each level, a4D symbol is stored in a register. The number of path memory levels ischosen as a tradeoff between receiver latency and detection accuracy.FIG. 13 only shows the path memory for path 0 and continues with theexample discussed in FIGS. 7-12. FIG. 13 illustrates how the 4D decisionfor the path 0 is stored in the path memory module 608, and how the Path0 Select signal, i.e., the information about which one of the fourincoming extended paths to state 0 was selected, is used in thecorresponding path memory to force merging of the paths at all depthlevels (levels 0 through 9) in the path memory.

Referring to FIG. 13, each of the ten levels of the path memory includesa 4-to-1 multiplexer (4:1 MUX) and a register to store a 4D decision.The registers are numbered according to their depth levels. For example,register 0 is at depth level 0. The Path 0 Select signal 1206 (FIG. 12)is used as the select input for the 4:1 MUXes 1302, 1304, 1306, . . . ,1320. The 4D decisions 1130, 1132, 1134, 1136 (FIG. 11) are inputted tothe 4:1 MUX 1302 which selects one of the four 4D decisions based on thePath 0 select signal 1206 and stores it in the register 0 of path 0. Onesymbol period later, the register 0 of path 0 outputs the selected 4Ddecision to the 4:1 MUX 1304. The other three 4D decisions inputted tothe 4:1 MUX 1304 are from the registers 0 of paths 2, 4, and 6. Based onthe Path 0 Select signal 1206, the 4:1 MUX 1304 selects one of the four4D decisions and stores it in the register 1 of path 0. One symbolperiod later, the register 1 of path 0 outputs the selected 4D decisionto the 4:1 MUX 1306. The other three 4D decisions inputted to the 4:1MUX 1306 are from the registers 1 of paths 2, 4, and 6. Based on thePath 0 Select signal 1206, the 4:1 MUX 1306 selects one of the four 4Ddecisions and stores it in the register 2 of path 0. This procedurecontinues for levels 3 through 9 of the path memory for path 0. Duringcontinuous operation, ten 4D symbols representing path 0 are stored inregisters 0 through 9 of the path memory for path 0.

Similarly to path 0, each of the paths 1 though 7 is stored as ten 4Dsymbols in the registers of the corresponding path memory. Theconnections between the MUX of one path and registers of different pathsfollows the trellis diagram of FIG. 2. For example, the MUX at level kfor path 1 receives as inputs the outputs of the registers at level k−1for paths 1, 3, 5, 7, and the MUX at level k for path 2 receives asinputs the outputs of the registers at level k−1 for paths 0, 2, 4, 6.

FIG. 14 is a block diagram illustrating the computation of the finaldecision and the tentative decisions in the path memory module 608 basedon the 4D symbols stored in the path memory for each state. At eachiteration of the Viterbi algorithm, the best of the eight states, i.e.,the one associated with the path having the lowest path metric, isselected, and the 4D symbol from the associated path stored at the lastlevel of the path memory is selected as the final decision 40 (FIG. 3).Symbols at lower depth levels are selected as tentative decisions, whichare used to feed the delay line of the DFE 612 (FIG. 3).

Referring to FIG. 14, the path metrics 1402 of the eight states,obtained from the procedure of FIG. 12, are inputted to the comparatormodule 1406 which selects the one with the lowest value and provides anindicator 1401 of this selection to the select inputs of the 8-to-1multiplexers (8:1 MUXes) 1402, 1404, 1406, Y, 1420, which are located atpath memory depth levels 0 through 9, respectively. Each of the 8:1MUXes receives eight 4D symbols outputted from corresponding registersfor the eight paths, the corresponding registers being located at thesame depth level as the MUX, and selects one of the eight 4D symbols tooutput, based on the select signal 1401. The outputs of the 8:1 MUXeslocated at depth levels 0 through 9 are V₀, V₁, V₂, Y, V₉, respectively.

In the illustrated embodiment, one set of eight signals, output by thefirst register set (the register 0 set) to the first MUX 1402, is alsotaken off as a set of eight outputs, denoted V₀ ^(i) and provided to theMDFE (602 of FIG. 3) as a select signal which is used in a manner to bedescribed below. Although only the first register set is illustrated asproviding outputs to the DFE, the invention contemplates the second, oreven higher order, register sets also providing similar outputs. Incases where multiple register sets provide outputs, these are identifiedby the register set depth order as a subscript, as in V₁ ^(i), and thelike.

In the illustrated embodiment, the MUX outputs V₀, V₁, V₂ are delayed byone unit of time, and are then provided as the tentative decisionsV_(0F), V_(1F), V_(2F) to the DFE 612. The number of the outputs V_(i)to be used as tentative decisions depends on the required accuracy andspeed of decoding operation. After further delay, the output V₀ of thefirst MUX 1402 is also provided as the 4D tentative decision 44 (FIG. 2)to the Feedforward Equalizers 26 of the four constituent transceiversand the timing recovery block 222 (FIG. 2). The 4D symbol V_(9F), whichis the output V₉ of the 8:1 MUX 1420 delayed by one time unit, isprovided as the final decision 40 to the receive section of the PCS 204R(FIG. 2).

The following is the discussion on how outputs V₀ ^(i), V₁ ^(i), V_(0F),V_(1F), V_(2F) of the path memory module 608 might be used in the selectlogic 610, the MDFE 602, and the DFE 612 (FIG. 3).

FIG. 15 is a block level diagram of the ISI compensation portion of thedecoder, including construction and operational details of the DFE andMDFE circuitry (612 and 602 of FIG. 3, respectively). The ISIcompensation embodiment depicted in FIG. 15 is adapted to receive signalsamples from the deskew memory (36 of FIG. 2) and provide ISIcompensated signal samples to the Viterbi (slicer) for decoding. Theembodiment illustrated in FIG. 15 includes the Viterbi block 1502 (whichincludes the Viterbi decoder 604, the path metrics module 606 and thepath memory module 608), the select logic 610, the MDFE 602 and the DFE612.

The MDFE 602 computes an independent feedback signal for each of thepaths stored in the path memory module 608. These feedback signalsrepresent different hypotheses for the intersymbol interferencecomponent present in the input 37 (FIGS. 2 and 6) to the trellis decoder38. The different hypotheses for the intersymbol interference componentcorrespond to the different hypotheses about the previous symbols whichare represented by the different paths of the Viterbi decoder.

The Viterbi algorithm tests these hypotheses and identifies the mostlikely one. It is an essential aspect of the Viterbi algorithm topostpone this identifying decision until there is enough information tominimize the probability of error in the decision. In the meantime, allthe possibilities are kept open. Ideally, the MDFE block would use theentire path memory to compute the different feedback signals using theentire length of the path memory. In practice, this is not possiblebecause this would lead to unacceptable complexity. By “unacceptable,”it is meant requiring a very large number of components and an extremelycomplex interconnection pattern.

Therefore, in the exemplary embodiment, the part of the feedback signalcomputation that is performed on a per-path basis is limited to the twomost recent symbols stored in register set 0 and register set 1 of allpaths in the path memory module 608, namely V₀ ^(i) and V₁ ^(i) withi=0, . . . , 7, indicating the path. For symbols older than two periods,a hard decision is forced, and only one replica of a “tail” component ofthe intersymbol interference is computed. This results in some marginalloss of performance, but is more than adequately compensated for by asimpler system implementation.

The DFE 612 computes this “tail” component of the intersymbolinterference, based on the tentative decisions V_(0F), V_(1F), andV_(2F). The reason for using three different tentative decisions is thatthe reliability of the decisions increases with the increasing depthinto the path memory. For example, V_(1F) is a more reliable version ofV_(0F) delayed by one symbol period. In the absence of errors, V_(1F)would be always equal to a delayed version of V_(0F). In the presence oferrors, V_(1F) is different from V_(0F), and the probability of V_(1F)being in error is lower than the probability of V_(0F) being in error.Similarly, V_(2F) is a more reliable delayed version of V_(1F).

Referring to FIG. 15, the DFE 612 is a filter having 33 coefficients c₀through c₃₂ corresponding to 33 taps and a delay line 1504. The delayline is constructed of sequentially disposed summing junctions and delayelements, such as registers, as is well understood in the art of filterdesign. In the illustrated embodiment, the coefficients of the DFE 612are updated once every four symbol periods, i.e., 32 nanoseconds, inwell known fashion, using the well known Least Mean Squares algorithm,based on a decision input 1505 from the Viterbi block and an error input42 dfe.

The symbols V_(0F), V_(1F), and V_(2F) are “jammed,” meaning inputted atvarious locations, into the delay line 1504 of the DFE 612. Based onthese symbols, the DFE 612 produces an intersymbol interference (ISI)replica portion associated with all previous symbols except the two mostrecent (since it was derived without using the first two taps of the DFE612). The ISI replica portion represents a single-state ISI compensationsignal. The ISI replica portion is subtracted from the output 37 of thedeskew memory block 36 to produce the signal 1508 which is then fed tothe MDFE block. The signal 1508 is denoted as the “tail” component inFIG. 3. In the illustrated embodiment, the DFE 612 has 33 taps, numberedfrom 0 through 32, and the tail component 1508 is associated with taps 2through 32. As shown in FIG. 15, due to a circuit layout reason, thetail component 1508 is obtained in two steps. First, the ISI replicaassociated with taps 3 through 32 is subtracted from the deskew memoryoutput 37 to produce an intermediate signal 1507. Then, the ISI replicaassociated with the tap 2 is subtracted from the intermediate signal1507 to produce the tail component 1508.

The DFE 612 also computes the ISI replica 1510 associated with the twomost recent symbols, based on tentative decisions V_(0F), V_(1F), andV_(2F). This ISI replica 1510 is subtracted from a delayed version ofthe output 37 of the deskew memory block 36 to provide a soft decision43. The tentative decision V_(0F) is subtracted from the soft decision43 in order to provide an error signal 42. Error signal 42 is furtherprocessed into several additional representations, identified as 42 enc,42 ph and 42 dfe. The error 42 enc is provided to the echo cancellersand NEXT cancellers of the constituent transceivers. The error 42 ph isprovided to the FFEs 26 (FIG. 2) of the four constituent transceiversand the timing recovery block 222. The error 42 dfe is directed to theDFE 612, where it is used for the adaptive updating of the coefficientsof the DFE together with the last tentative decision V_(2F) from theViterbi block 1502. The tentative decision 44 shown in FIG. 3 is adelayed version of V_(0F). The soft decision 43 is outputted to a testinterface for display purposes.

The DFE 612 provides the tail component 1508 and the values of the two“initial” coefficients C₀ and C₁ to the MDFE 602. The MDFE 602 computeseight different replicas of the ISI associated with the first twocoefficients of the DFE 612. Each of these ISI replicas corresponds to adifferent path in the path memory module 608. This computation is partof the so-called “critical path” of the trellis decoder 38, in otherwords, the sequence of computations that must be completed in a singlesymbol period. At the speed of operation of the Gigabit Ethernettransceivers, the symbol period is 8 nanoseconds. All the challengingcomputations for 4D slicing, branch metrics, path extensions, selectionof best path, and update of path memory must be completed within onesymbol period. In addition, before these computations can even begin,the MDFE 602 must have completed the computation of the eight 4D Viterbiinputs 614 (FIG. 3) which involves computing the ISI replicas andsubtracting them from the output 37 of the de-skew memory block 36 (FIG.2). This bottleneck in the computations is very difficult to resolve.The system of the present invention allows the computations to becarried out smoothly in the allocated time.

Referring to FIG. 15, the MDFE 602 provides ISI compensation to receivedsignal samples, provided by the deskew memory (37 of FIG. 2) beforeproviding them, in turn, to the input of the Viterbi block 1502. ISIcompensation is performed by subtracting a multiplicity of derived ISIreplica components from a received signal sample so as to develop amultiplicity of signals that, together, represents various expressionsof ISI compensation that might be associated with any arbitrary symbol.One of the ISI compensated arbitrary symbolic representations is thenchosen, based on two tentative decisions made by the Viterbi block, asthe input signal sample to the Viterbi.

Since the symbols under consideration belong to a PAM-5 alphabet, theycan be expressed in one of only 5 possible values (−2, −1, 0, +1, +2).Representations of these five values are stored in a convolution engine1511, where they are convolved with the values of the first two filtercoefficients C₀ and C₁ of the DFE 612. Because there are two coefficientvalues and five level representations, the convolution engine 1511necessarily gives a twenty five value result that might be expressed as(a_(i)C₀+b_(j)C₁), with C₀ and C₁ representing the coefficients, andwith a_(i) and b_(j) representing the level expressions (with i=1, 2, 3,4, 5 and j=1, 2, 3, 4, 5 ranging independently).

These twenty five values are negatively combined with the tail component1508 received from the DFE 612. The tail component 1508 is a signalsample from which a partial ISI component associated with taps 2 through32 of the DFE 612 has been subtracted. In effect, the MDFE 602 isoperating on a partially ISI compensated (pre-compensated) signalsample. Each of the twenty five pre-computed values is subtracted fromthe partially compensated signal sample in a respective one of a stackof twenty five summing junctions. The MDFE then saturates the twentyfive results to make them fit in a predetermined range. This saturationprocess is done to reduce the number of bits of each of the 1Dcomponents of the Viterbi input 614 in order to facilitate lookup tablecomputations of branch metrics. The MDFE 602 then stores the resultantISI compensated signal samples in a stack of twenty five registers,which makes the samples available to a 25:1 MUX for input sampleselection. One of the contents of the twenty five registers willcorrespond to a component of a 4D Viterbi input with the ISI correctlycancelled, provided that there was no decision error (meaning the harddecision regarding the best path forced upon taps 2 through 32 of theDFE 612) in the computation of the tail component. In the absence ofnoise, this particular value will coincide with one of the ideal 5-levelsymbol values (i.e., −2, −1, 0, 1, 2). In practice, there will always benoise, so this value will be in general different than any of the idealsymbol values.

This ISI compensation scheme can be expanded to accommodate any numberof symbolic levels. If signal processing were performed on PAM-7signals, for example, the convolution engine 1511 would output fortynine values, i.e., a_(i) and b_(j) would range from 1 to 7. Error ratecould be reduced, i.e., performance could be improved, at the expense ofgreater system complexity, by increasing the number of DFE coefficientsinputted to the convolution engine 1511. The reason for this improvementis that the forced hard decision (regarding the best path forced upontaps 2 through 32 of the DFE 612) that goes into the “tail” computationis delayed. If C₂ were added to the process, and the symbols are againexpressed in a PAM-5 alphabet, the convolution engine 1511 would outputone hundred twenty five (125) values. Error rate is reduced bydecreasing the tail component computation, but at the expense of nowrequiring 125 summing junctions and registers, and a 125:1 MUX.

It is important to note that, as inputs to the DFE 612, the tentativedecisions V_(OF), V_(1F), V_(2F) are time sequences, and not justinstantaneous isolated symbols. If there is no error in the tentativedecision sequence V_(OF), then the time sequence V_(2F) will be the sameas the time sequence V_(1F) delayed by one time unit, and the same asthe time sequence V_(OF) delayed by two time units. However, due tooccasional decision error in the time sequence V_(0F), which may havebeen corrected by the more reliable time sequence V_(1F) or V_(2F), timesequences V_(1F) and V_(2F) may not exactly correspond to time-shiftedversions of time sequence V_(0F). For this reason, instead of using justone sequence V_(0F), all three sequences V_(0F), V_(1F) and V_(2F) areused as inputs to the DFE 612. Although this implementation isessentially equivalent to convolving V_(0F) with all the DFEscoefficients when there is no decision error in V_(0F), it has the addedadvantage of reducing the probability of introducing a decision errorinto the DFE 612. It is noted that other tentative decision sequencesalong the depth of the path memory 608 may be used instead of thesequences V_(0F), V_(1F) and V_(2F).

Tentative decisions, developed by the Viterbi, are taken from selectedlocations in the path memory 608 and “jammed” into the DFE 612 atvarious locations along its computational path. In the illustratedembodiment (FIG. 15), the tentative decision sequence V_(0F) isconvolved with the DFEs coefficients C₀ through C₃, the sequence V_(1F)is convolved with the DFEs coefficients C₄ and C₅, and the sequenceV_(2F) is convolved with the DFEs coefficients C₆ through C₃₂. It isnoted that, since the partial ISI component that is subtracted from thedeskew memory output 37 to form the signal 1508 is essentially taken (intwo steps as described above) from tap 2 of the DFE 612, this partialISI component is associated with the DFEs coefficients C₂ through C₃₂.It is also noted that, in another embodiment, instead of using thetwo-step computation, this partial ISI component can be directly takenfrom the DFE 612 at point 1515 and subtracted from signal 37 to formsignal 1508.

It is noted that the sequences V_(0F), V_(1F), V_(2F) correspond to ahard decision regarding the choice of the best path among the eightpaths (path i is the path ending at state i). Thus, the partial ISIcomponent associated with the DFEs coefficients C₂ through C₃₂ is theresult of forcing a hard decision on the group of higher orderedcoefficients of the DFE 612. The underlying reason for computing onlyone partial ISI signal instead of eight complete ISI signals for theeight states (as done conventionally) is to save in computationalcomplexity and to avoid timing problems. In effect, the combination ofthe DFE and the MDFE of the present invention can be thought of asperforming the functions of a group of eight different conventional DFEshaving the same tap coefficients except for the first two tapcoefficients.

For each state, there remains to determine which path to use for theremaining two coefficients in a very short interval of time (about 16nanoseconds). This is done by the use of the convolution engine 1511 andthe MDFE 602. It is noted that the convolution engine 1511 can beimplemented as an integral part of the MDFE 602. It is also noted that,for each constituent transceiver, i.e., for each 1D component of theViterbi input 614 (the Viterbi input 614 is practically eight 4D Viterbiinputs), there is only one convolution engine 1511 for all the eightstates but there are eight replicas of the select logic 610 and eightreplicas of the MUX 1512.

The convolution engine 1511 computes all the possible values for the ISIassociated with the coefficients C₀ and C₁. There are only twenty fivepossible values, since this ISI is a convolution of these twocoefficients with a decision sequence of length 2, and each decision inthe sequence can only have five values (−2, −1, 0, +1, +2). Only one ofthese twenty five values is a correct value for this ISI. These twentyfive hypotheses of ISI are then provided to the MDFE 602.

In the MDFE 602, the twenty five possible values of ISI are subtractedfrom the partial ISI compensated signal 1508 using a set of addersconnected in parallel. The resulting signals are then saturated to fitin a predetermined range, using a set of saturators. The saturatedresults are then stored in a set of twenty five registers. Provided thatthere was no decision error regarding the best path (among the eightpaths) forced upon taps 2 through 32 of the DFE 612, one of the twentyfive registers would contain one 1D component of the Viterbi input 614with the ISI correctly cancelled for one of the eight states.

For each of the eight states, the generation of the Viterbi input islimited to selecting the correct value out of these 25 possible values.This is done, for each of the eight states, using a 25-to-1 multiplexer1512 whose select input is the output of the select logic 610. Theselect logic 610 receives V₀ ^((i)) and V₁ ^((i)) (i=0, . . . , 7) for aparticular state i from the path memory module 608 of the Viterbi block1502. The select logic 610 uses a pre-computed lookup table to determinethe value of the select signal 622A based on the values of V₀ ^((i)) andV₁ ^((i)) for the particular state i. The select signal 622A is onecomponent of the 8-component select signal 622 shown in FIG. 3. Based onthe select signal 622A, the 25-to-1 multiplexer 1512 selects one of thecontents of the twenty five registers as a 1D component of the Viterbiinput 614 for the corresponding state i.

FIG. 15 only shows the select logic and the 25-to-1 multiplexer for onestate and for one constituent transceiver. There are identical selectlogics and 25-to-1 multiplexers for the eight states and for eachconstituent transceiver. In other words, the computation of the 25values is done only once for all the eight states, but the 25:1 MUX andthe select logic are replicated eight times, one for each state. Theinput 614 to the Viterbi decoder 604 is, as a practical matter, eight 4DViterbi inputs. Therefore, the output of the MDFE 602 is an 8-staterepresentation signal. More generally, in a system utilizing N states,the output of the MDFE 602 is an N-state representation signal. Becausethe MDFE 602 produces an N-state representation signal based on asingle-state ISI compensation signal, the MDFE can be referred to as astate multiplication circuit.

In the case of the DFE, however, only a single DFE is contemplated forpractice of the invention. In contrast to alternative systems whereeight DFEs are required, one for each of the eight states imposed by thetrellis encoding scheme, a single DFE is sufficient since the decisionas to which path among the eight is the probable best was made in theViterbi block and forced to the DFE as a tentative decision. Statestatus is maintained at the Viterbi decoder input by controlling theMDFE output with the state specific signals developed by the 8 selectlogics (610 of FIG. 3) in response to the eight state specific signalsV₀ ^(i) and V₁ ^(i), i=0, . . . , 7, from the path memory module (608 ofFIG. 3). Although identified as a singular DFE, it will be understoodthat the 4D architectural requirements of the system means that the DFEis also 4D. Each of the four dimensions (twisted pairs) will exhibittheir own independent contributions to ISI and these should be dealtwith accordingly. Thus, the DFE is singular, with respect to statearchitecture, when its 4D nature is taken into account.

In the architecture of the system of the present invention, the Viterbiinput computation becomes a very small part of the critical path sincethe multiplexers have extremely low delay due largely to the placementof the 25 registers between the 25:1 multiplexer and the saturators. Ifa register is placed at the input to the MDFE 602, then the 25 registerswould not be needed. However, this would cause the Viterbi inputcomputation to be a larger part of the critical path due to the delayscaused by the adders and saturators. Thus, by using 25 registers at alocation proximate to the MDFE output instead of using one registerlocated at the input of the MDFE, the critical path of the MDFE and theViterbi decoder is broken up into 2 approximately balanced components.This architecture makes it possible to meet the very demanding timingrequirements of the Gigabit Ethernet transceiver.

Another advantageous factor in achieving high-speed operation for thetrellis decoder 38 is the use of heavily truncated representations forthe metrics of the Viterbi decoder. Although this may result in amathematically non-zero decrease in theoretical performance, theresulting vestigial precision is nevertheless quite sufficient tosupport healthy error margins. Moreover, the use of heavily truncatedrepresentations for the metrics of the Viterbi decoder greatly assistsin achieving the requisite high operational speeds in a gigabitenvironment. In addition, the reduced precision facilitates the use ofrandom logic or simple lookup tables to compute the squared errors,i.e., the distance metrics, consequently reducing the use of valuablesilicon real estate for merely ancillary circuitry.

FIG. 16 shows the word lengths used in one embodiment of the Viterbidecoder of this invention. In FIG. 16, the word lengths are denoted by Sor U followed by two numbers separated by a period. The first numberindicates the total number of bits in the word length. The second numberindicates the number of bits after the decimal point. The letter Sdenotes a signed number, while the letter U denotes an unsigned number.For example, each 1D component of the 4D Viterbi input is a signed 5-bitnumber having 3 bits after the decimal point.

FIG. 17 shows an exemplary lookup table that can be used to compute thesquared 1-dimensional errors. The logic function described by this tablecan be implemented using read-only-memory devices, random logiccircuitry or PLA circuitry. Logic design techniques well known to aperson of ordinary skill in the art can be used to implement the logicfunction described by the table of FIG. 17 in random logic.

FIGS. 18A and 18B provide a more complete table describing thecomputation of the decisions and squared errors for both the X and Ysubsets directly from one component of the 4D Viterbi input to the 1Dslicers (FIG. 7). This table completely specifies the operation of theslicers of FIG. 7.

An exemplary demodulator including a high speed decoder has beendescribed and includes various components that facilitate robust andaccurate acquisition and decoding of PAM-5 constellation signals atspeeds consistent with gigabit operation. Symbol decoding, including ISIcompensation, is accurately performed in a symbol period of about 8 ns,by a transceiver demodulator circuit constructed in a manner so as tofirst, bifurcate the ISI compensation function between an FFE, operatingto compensate partial response pulse shaping filter (remote transmitter)induced ISI, and a decoder operating to compensate ISI perturbationsinduced by transmission channel characteristics, and second, bybifurcating critical path computations into substantially balanced firstand second portions, the first portion including computations performedin a DFE and MDFE element and a second portion including computationsperformed in a Viterbi decoder.

The DFE element is further advantageous in that it is implemented asonly a single conceptual DFE (taking into account its 4D nature) ratherthan an eight element stack, each of which defines a multi-dimensionalinput to an eight-state Viterbi. The DFE is “stuffed,” at particularchosen locations, by the first several stages of a sequential,multi-stage tentative decision path memory module, so as to develop aset of “tail” coefficient values in the DFE which, taken together,represent the algebraic sum of a truncated set of DFE coefficients C₂ toC₃₂. A received symbol, represented by a five level constellation, isconvolved with the remaining two DFE coefficients, C₀ and C₁, which aretaken to represent the transmission channel induced ISI.

As deskewed signals enter the decoder, the previous symbol, convolvedwith the DFE coefficients C₃ to C₃₂, is first subtracted therefrom. Thenthe previous symbol convolved with C₂ is subtracted and the resultant(intermediate) symbol is directed to the MDFE. This resultant signalmight be described as the receive symbol with partial ISI introduced byprevious symbols subtracted. In the MDFE, all possible convolutions ofthe primary coefficients, C₀ and C₁, with the possible symbol values, issubtracted from the intermediate symbol to provide a receive symbolwithout perturbations induced by ISI.

It will be evident to one having skill in the art that although thetransceiver has been described in the context of a trellis encoded,PAM-5 signal representation, communicated over a multi-pair transmissionchannel, the invention is not limited to any particular communicationtechnique. Specifically, the decoder architecture and signal processingmethodology in accord with the invention is suitable for use with anyform of communication in which the symbolic content of the communicationis represented by multi-level signals. The invention, indeed, becomesparticularly appropriate as the number of signal levels increases.

Neither is the invention limited to signals encoded in accordance with a4D, eight-state, trellis methodology. Trellis encoding forces the systemto be constructed so as to accommodate the eight states inherent in thetrellis methodology. Other coding methodologies and architectures areexpressly contemplated by the invention and can be implemented by makingthe proper modifications to an alternative coding architectures “statewidth,” as will be apparent to a skilled integrated circuit transceiverdesigner. Likewise, the “dimensional depth,” 1D, 2D, 4D . . . forexample, may be suitably increased, or decreased to accommodatedifferent forms of transmission channel implementations. As in the caseof increasing signal level representations, the systems and methods ofthe invention are particularly suitable for channels with increased“depth,” such as six, eight, or even higher numbers, of twisted paircabling, single conductor cabling, parallel wireless channels, and thelike.

In the context of an exemplary integrated circuit-type bidirectionalcommunication system, a further aspect of the invention might becharacterized as a system and method for adaptively and dynamicallyregulating the power consumption of an integrated circuit communicationsystem as a function of particular, user defined signal quality metrics.Signal quality metrics might include a signals bit error rate (BER), asignal-to-noise ratio (SNR) specification, noise margin figure, dynamicrange, or the like. Indeed, signal quality is a generalized term used todescribe a signals functional fidelity.

As will be understood by one having skill in the art, signal quality isa measurable operational characteristic of various component portions ofmodern communication systems. Various forms of signal quality metricsare used to define the features and functionality of signal processingportions of integrated circuit communication devices, particularlycoder/decoder circuitry, equalizers and filters, each of which requirelarge amounts of silicon real estate for effective implementation, and aconsequently large degree of power consumption during operation.

Turning now to FIG. 28, the invention might be described briefly as amethodology for balancing the conflicting circuit performancerequirements represented by signal quality and power consumption andmight be illustrated as the implementation of a decision matrix havingpower consumption as one of the dimensions and a chosen signal qualitymetric as another. From FIG. 28, it will be understood that integratedcircuit power consumption is directly related to processed signalquality. This is particularly true in the case of integrated circuitsincorporating high order digital filter elements, having a large numberof taps, all of which consume power when in operation.

However, it has been generally accepted integrated circuit designpractice to construct an integrated circuit communication device toaccommodate the most stringent digital processing that might be requiredby a device in an actual application. In the case of an Ethernettransceiver, for example, provision must be made for processing signalstransmitted over a wide variety of transmission channels exhibitingwidely disparate transmission channel characteristics, ranging fromextremely lossy, highly populated, long wiring run channels, to veryshort (<2 meters) point-to-point installations. In either case, all ofthe signal processing elements of conventional transceiver circuitry areoperative to process a signal, whether needed or not, such that powerconsumption is relatively constant and large.

In FIG. 28, the evaluation matrix judges an output signal quality metricagainst a threshold standard, and where a measured quality metric isgreater than the threshold, allows the power consumption of the deviceto be reduced by turning off various functional processing blocks untilthe output signal quality is reduced to the threshold value. Thisapproach has particular utility in the case of digital filter elements,coder/decoder circuitry and equalizers, all of which include multipleelements that are required for processing signals propagated throughharsh channel environments, but to various degrees unnecessary whensignals are propagated through a more benign channel.

The evaluation matrix, as exemplified in FIG. 28, might be initializedby a user input requirement, such as the degree to which powerconsumption is an issue. A particular power consumption value might beset as an operational parameter (indicated as “P” in FIG. 28), andportions of the device adaptively turned off until the desired powervalue is reached. This will necessarily affect the signal quality of asignal processed by such truncated circuitry, but, in accordance withthe invention, signal quality is able to be locally maximized to apre-determined power consumption metric, such that device performance isnot unduly sacrificed.

Various portions of the device might be powered-down in predeterminedsequential combinations with each combination resulting in a particularperformance metric. Signal performance is evaluated at each sequentialstep. Thus, any one power consumption specification, i.e., “P,” willgive a range of performance values (represented as “A” in FIG. 28). Thebest signal performance result is necessarily the chosen metric fordeciding which of the multiplicity of power-down configurations isimplemented. Consequently, where power is the primary concern, signalquality defaults to the best signal performance achievable at thespecified power level.

Where signal quality (performance) is the primary concern, the system isallowed to function normally, with all processing blocks operative. Inthis circumstance, power consumption will be expected to be nominal.

Where signal quality is desirable, but some accommodation must be madeto power consumption, a user may set a signal quality metric as athreshold standard (indicated as “Q” in FIG. 28), and allow the systemto adaptively and dynamically run through a multiplicity of power-downconfigurations, resulting in a range of power consumption values(indicated as “B” in FIG. 28) in order to determine which of theconfigurations gives the lowest power consumption while retaining thedesired signal quality metric. This methodology is particularlyeffective in high order filters with multiple taps, and in decoderblocks that might implement a trellis decoder in a fully functionalform, but which might be adequate when truncated to a simple slicer incertain situations.

No matter how implemented, however, all that is required for practice ofthe invention is that power consumption be established as one basis ofan evaluation matrix, and that some signal quality or device performancecharacteristic, having a relationship to device power consumption, beestablished as another. As one of the bases are defined, as by a userinput, for example, the other basis is locally maximized (in the case ofperformance) or minimized (in the case of power) by an adaptive anddynamic procedure that chooses the most pertinent portions of anintegrated circuit to disable. The procedure is adaptive in the sensethat it is not fixed in time. As channel and signal characteristics canbe expected to vary with time, a changing signal quality metric willforce a re-evaluation of the matrix. A further reduction of powerconsumption, or a further enhancement of signal quality may be obtained.

In order to appreciate the advantages of the present invention, it willbe beneficial to describe the invention in the context of an exemplarybidirectional communication device, such as an Ethernet transceiver. Theparticular exemplary implementation chosen is depicted in FIG. 1, whichis a simplified block diagram of a multi-pair communication systemoperating in conformance with the IEEE 802.3ab standard (also termed1000BASE-T) for 1 gigabit (Gb/s) Ethernet full-duplex communication overfour twisted pairs of Category-5 copper wires.

The communication system illustrated in FIG. 1 is represented as apoint-to-point system, in order to simplify the explanation, andincludes two main transceiver blocks 102 and 104, coupled together viafour twisted-pair cables 112 a, b, c and d. Each of the wire pairs 112a, b, c, d is coupled to each of the transceiver blocks 102, 104 througha respective one of four line interface circuits 106. Each of the wirepairs 112 a, b, c, d facilitates communication of information betweencorresponding pairs of four pairs of transmitter/receiver circuits(constituent transceivers) 108. Each of the constituent transceivers 108is coupled between a respective line interface circuit 106 and aPhysical Coding Sublayer (PCS) block 110. At each of the transceiverblocks 102 and 104, the four constituent transceivers 108 are capable ofoperating simultaneously at 250 megabits of information data per second(Mb/s) each, and are coupled to the corresponding remote constituenttransceivers through respective line interface circuits to facilitatefull-duplex bidirectional operation. Thus, 1 Gb/s communicationthroughput of each of the transceiver blocks 102 and 104 is achieved byusing four 250 Mb/s (125 Mbaud at 2 information data bits per symbol)constituent transceivers 108 for each of the transceiver blocks 102, 104and four pairs of twisted copper cables to connect the two transceiverblocks 102, 104 together.

The exemplary communication system of FIG. 1 has a superficialresemblance to a 100BASE-T4 system, but is configured to operate at tentimes the bit rate. As such, it should be understood that certain systemperformance characteristics, such as sampling rates and the like, willbe consequently higher and cause a greater degree of power consumption.Also, at gigabit data rates over potentially noisy channels, aproportionately greater degree of signal processing is required in manyinstances to insure an adequate degree of signal fidelity and quality.

FIG. 2 is a simplified block diagram of the functional architecture andinternal construction of an exemplary transceiver block, indicatedgenerally at 200, such as transceiver 102 of FIG. 1. Since theillustrative transceiver application relates to gigabit Ethernettransmission, the transceiver will be referred to as the “gigabittransceiver.” For ease of illustration and description, FIG. 2 showsonly one of the four 250 Mb/s constituent transceivers which areoperating simultaneously (termed herein 4-D operation). However, sincethe operation of the four constituent transceivers are necessarilyinterrelated, certain blocks and signal lines in the exemplaryembodiment of FIG. 2 perform four-dimensional operations and carryfour-dimensional (4-D) signals, respectively. By 4-D, it is meant thatthe data from the four constituent transceivers are used simultaneously.In order to clarify signal relationships in FIG. 2, thin linescorrespond to 1-dimensional functions or signals (i.e., relating to onlya single constituent transceiver), and thick lines correspond to 4-Dfunctions or signals (relating to all four constituent transceivers).

Referring to FIG. 2, the gigabit transceiver 200 includes a GigabitMedium Independent Interface (GMII) block 202 subdivided into a receiveGMII circuit 202R and a transmit GMII circuit 202T. The transceiver alsoincludes a Physical Coding Sublayer (PCS) block 204, subdivided into areceive PCS circuit 204R and a transmit PCS circuit 204T, a pulseshaping filter 206, a digital-to analog (D/A) converter block 208, and aline interface block 210, all generally encompassing the transmitterportion of the transceiver.

The receiver portion generally includes a highpass filter 212, aprogrammable gain amplifier (PGA) 214, an analog-to-digital (A/D)converter 216, an automatic gain control (AGC) block 220, a timingrecovery block 222, a pair-swap multiplexer block 224, a demodulator226, an offset canceller 228, a near-end crosstalk (NEXT) cancellerblock 230 having three constituent NEXT cancellers and an echo canceller232.

The gigabit transceiver 200 also includes an A/D first-in-first-outbuffer (FIFO) 218 to facilitate proper transfer of data from the analogclock region to the receive clock region, and a loopback FIFO block(LPBK) 234 to facilitate proper transfer of data from the transmit clockregion to the receive clock region. The gigabit transceiver 200 canoptionally include an additional adaptive filter to cancel far-endcrosstalk noise (FEXT canceller).

In operational terms, on the transmit path, the transmit section 202T ofthe GMII block receives data from the Media Access Control (MAC) modulein byte-wide format at the rate of 125 MHz and passes them to thetransmit section 204T of the PCS block via the FIFO 201. The FIFO 201ensures proper data transfer from the MAC layer to the Physical Coding(PHY) layer, since the transmit clock of the PHY layer is notnecessarily synchronized with the clock of the MAC layer. In oneembodiment, this small FIFO 201 has from about three to about fivememory cells to accommodate the file elasticity requirement which is afunction of frame size and frequency offset.

The PCS transmit section 204T performs certain scrambling operationsand, in particular, is responsible for encoding digital data into therequisite codeword representations appropriate for transmission. In, theillustrated embodiment of FIG. 2, the transmit PCS section 204Tincorporates a coding engine and signal mapper that implements a trelliscoding architecture, such as required by the IEEE 802.3ab specificationfor gigabit transmission.

In accordance with this encoding architecture, the PCS transmit section204T generates four 1-D symbols, one for each of the four constituenttransceivers. The 1-D symbol generated for the constituent transceiverdepicted in FIG. 2 is filtered by the pulse shaping filter 206. Thisfiltering assists in reducing the radiated emission of the output of thetransceiver such that it falls within the parameters required by theFederal Communications Commission. The pulse shaping filter 206 isimplemented so as to define a transfer function of 0.75+0.25z⁻¹. Thisparticular implementation is chosen so that the power spectrum of theoutput of the transceiver falls below the power spectrum of a 100Base-Txsignal. The 100Base-Tx is a widely used and accepted Fast Ethernetstandard for 100 Mb/s operation on two pairs of Category-5 twisted paircables. The output of the pulse shaping filter 206 is converted to ananalog signal by the D/A converter 208 operating at 125 MHz. The analogsignal passes through the line interface block 210, and is placed on thecorresponding twisted pair cable.

On the receive path, the line interface block 210 receives an analogsignal from the twisted pair cable. The received analog signal ispreconditioned by the highpass filter 212 and the PGA 214 before beingconverted to a digital signal by the A/D converter 216 operating at asampling rate of 125 MHz. The timing of the A/D converter 216 iscontrolled by the output of the timing recovery block 222. The resultingdigital signal is properly transferred from the analog clock region tothe receive clock region by the A/D FIFO 218. The output of the A/D FIFO218 is also used by the AGC 220 to control the operation of the PGA 214.

The output of the A/D FIFO 218, along with the outputs from the A/DFIFOs of the other three constituent transceivers are inputted to thepair-swap multiplexer block 224. The pair-swap multiplexer block 224uses the 4-D pair-swap control signal from the receive section 204R ofPCS block to sort out the four input signals and send the correctsignals to the respective feedforward equalizers 26 of the demodulator226. This pair-swapping control is needed for the following reason. Thetrellis coding methodology used for the gigabit transceivers (102 and104 of FIG. 1) is based on the fact that a signal on each twisted pairof wire corresponds to a respective 1-D constellation, and that thesignals transmitted over four twisted pairs collectively form a 4-Dconstellation. Thus, for the decoding to work, each of the four twistedpairs must be uniquely identified with one of the four dimensions. Anyundetected swapping of the four pairs would result in erroneousdecoding. In an alternate embodiment of the gigabit transceiver, thepair-swapping control is performed by the demodulator 226, instead ofthe combination of the PCS receive section 204R and the pair-swapmultiplexer block 224.

The demodulator 226 includes a feed-forward equalizer (FFE) 26 for eachconstituent transceiver, coupled to a deskew memory circuit 36 and adecoder circuit 38, implemented in the illustrated embodiment as atrellis decoder. The deskew memory circuit 36 and the trellis decoder 38are common to all four constituent transceivers. The FFE 26 receives thereceived signal intended for it from the pair-swap multiplexer block224. The FFE 26 is suitably implemented to include a precursor filter28, a programmable inverse partial response (IPR) filter 30, a summingdevice 32, and an adaptive gain stage 34. The FFE 26 is aleast-mean-squares (LMS) type adaptive filter which is configured toperform channel equalization as will be described in greater detailbelow.

The precursor filter 28 generates a precursor to the input signal 2.This precursor is used for timing recovery. The transfer function of theprecursor filter 28 might be represented as −Υ+z⁻¹, with Υ equal to 1/16for short cables (less than 80 meters) and ⅛ for long cables (more than80 m). The determination of the length of a cable is based on the gainof the coarse PGA 14 of the programmable gain block 214.

The programmable IPR filter 30 compensates the ISI (intersymbolinterference) introduced by the partial response pulse shaping in thetransmitter section of a remote transceiver which transmitted the analogequivalent of the digital signal 2. The transfer function of the IPRfilter 30 may be expressed as 1/(1+Kz⁻¹). In the present example, K hasan exemplary value of 0.484375 during startup, and is slowly ramped downto zero after convergence of the decision feedback equalizer includedinside the trellis decoder 38. The value of K may also be any positivevalue strictly less than 1.

The summing device 32 receives the output of the IPR filter 30 andsubtracts therefrom adaptively derived cancellation signals receivedfrom the adaptive filter block, namely signals developed by the offsetcanceller 228, the NEXT cancellers 230, and the echo canceller 232. Theoffset canceller 228 is an adaptive filter which generates an estimateof signal offset introduced by component circuitry of the transceiversanalog front end, particularly offsets introduced by the PGA 214 and theA/D converter 216.

The three NEXT cancellers 230 may also be described as adaptive filtersand are used, in the illustrated embodiment, for modeling the NEXTimpairments in the received signal caused by interference generated bysymbols sent by the three local transmitters of the other threeconstituent transceivers. These impairments are recognized as beingcaused by a crosstalk mechanism between neighboring pairs of cables,thus the term near-end crosstalk, or NEXT. Since each receiver hasaccess to the data transmitted by the other three local transmitters, itis possible to approximately replicate the NEXT impairments throughfiltering. Referring to FIG. 2, the three NEXT cancellers 230 filter thesignals sent by the PCS block to the other three local transmitters andproduce three signals replicating the respective NEXT impairments. Bysubtracting these three signals from the output of the IPR filter 30,the NEXT impairments are approximately cancelled.

Due to the bi-directional nature of the channel, each local transmittercauses an echo impairment on the received signal of the local receiverwith which it is paired to form a constituent transceiver. In order toremove this impairment, an echo canceller 232 is provided, which mayalso be characterized as an adaptive filter, and is used, in theillustrated embodiment, for modeling the signal impairment due to echo.The echo canceller 232 filters the signal sent by the PCS block to thelocal transmitter associated with the receiver, and produces anapproximate replica of the echo impairment. By subtracting this replicasignal from the output of the IPR filter 30, the echo impairment isapproximately cancelled.

The adaptive gain stage 34 receives the processed signal from thesumming circuit 32 and fine tunes the signal path gain using azero-forcing LMS algorithm. Since this adaptive gain stage 34 trains onthe basis of error signals generated by the adaptive filters 228, 230and 232, it provides a more accurate signal gain than the one providedby the PGA 214 in the analog section.

The output of the adaptive gain stage 34, which is also the output ofthe FFE 26, is inputted to the deskew memory circuit 36. The deskewmemory 36 is a four-dimensional function block, i.e., it also receivesthe outputs of the three FFEs of the other three constituenttransceivers. There may be a relative skew in the outputs of the fourFFEs, which are the four signal samples representing the four symbols tobe decoded. This relative skew can be up to 50 nanoseconds, and is dueto the variations in the way the copper wire pairs are twisted. In orderto correctly decode the four symbols, the four signal samples must beproperly aligned. The deskew memory aligns the four signal samplesreceived from the four FFEs, then passes the deskewed four signalsamples to a decoder circuit 38 for decoding.

In the context of the exemplary embodiment, the data received at thelocal transceiver was encoded before transmission, at the remotetransceiver. In the present case, data might be encoded using an 8-statefour-dimensional trellis code, and the decoder 38 might therefore beimplemented as a trellis decoder. In the absence of intersymbolinterference (ISI), a proper 8-state Viterbi decoder would provideoptimal decoding of this code. However, in the case of Gigabit Ethernet,the Category-5 twisted pair cable introduces a significant amount ofISI. In addition, the partial response filter of the remote transmitteron the other end of the communication channel also contributes some ISI.Therefore, the trellis decoder 38 must decode both the trellis code andthe ISI, at the high rate of 125 MHz. In the illustrated embodiment ofthe gigabit transceiver, the trellis decoder 38 includes an 8-stateViterbi decoder, and uses a decision-feedback sequence estimationapproach to deal with the ISI components.

The 4-D output of the trellis decoder 38 is provided to the PCS receivesection 204R. The receive section 204R of the PCS block de-scrambles anddecodes the symbol stream, then passes the decoded packets and idlestream to the receive section 202T of the GMII block which passes themto the MAC module. The 4-D outputs, which are the error and tentativedecision, respectively, are provided to the timing recovery block 222,whose output controls the sampling time of the A/D converter 216. One ofthe four components of the error and one of the four components of thetentative decision correspond to the receiver shown in FIG. 2, and areprovided to the adaptive gain stage 34 of the FFE 26 to adjust the gainof the equalizer signal path. The error component portion of the decoderoutput signal is also provided, as a control signal, to adaptationcircuitry incorporated in each of the adaptive filters 228, 229, 230,231 and 232. Adaptation circuitry is used for the updating and trainingprocess of filter coefficients.

FIG. 3 is a block diagram of the trellis decoder 38 of FIG. 2 Thetrellis decoder 38 includes a multiple decision feedback equalizer(MDFE) 602, a Viterbi decoder 604, a path metrics module 606, a pathmemory module 608, a select logic 610, and a decision feedback equalizer612. There are eight Viterbi inputs and eight Viterbi decisionscorresponding to the eight states. Each of the eight Viterbi inputs(respectively, decisions) is a 4-dimensional vector whose fourcomponents are the Viterbi inputs (respectively, decisions) for the fourconstituent transceivers, respectively.

The adaptive filters used to implement the echo canceller 232 and theNEXT cancellers 229, 230 and 231 are typically finite impulse response(FIR) filters. FIG. 29A shows a structure of an adaptive FIR filter usedas an echo/NEXT canceller in one embodiment of the gigabit transceiver.

Referring to FIG. 29A, the adaptive FIR filter includes an input signalpath P_(in), an output signal path P_(out), and N taps (N is nine inFIG. 29A). Each tap connects a point on the input signal path P_(in) toa point on the output signal path P_(out). Each tap, except for the lasttap, includes a coefficient C₁, a multiplier M_(i) and an adder A_(i),i=0, . . . , N−2. The last tap includes the coefficient C_(N−1), themultiplier M_(N−1), and no adder. The coefficients C₁, where i=0, . . ., N−1, are stored in coefficient registers. During each adaptationprocess, the values of the coefficients C, are trained using awell-known least-mean-squares algorithm by an adaptation circuitry (notshown in FIG. 29A). After training, the coefficients C, converge tostable values. The FIR filter includes a set of delay elements D_(i),conventionally denoted by z⁻¹ in FIG. 29A. The number of delay elementsD_(i) determines the order of the FIR filter. The output y(n), i.e., thefilter output at time instant n, is a function of the input at timeinstant n and of the past inputs at time instants n-1 through n-(N−1),and is expressed as:

$\begin{matrix}{{y(n)} = {\sum\limits_{i = 0}^{N - 1}\; {C_{i}{x\left( {n - i} \right)}}}} & (1)\end{matrix}$

where x(n−i) denotes the input at time instant n−i, and N denotes thenumber of taps. The output y(n), as shown in Equation (1), is a weightedsum of the input data x(n−i), with i=0, . . . , N−1. The coefficients C,act as the weighting factors on the input data. If a coefficient C, hasa very small absolute value, relative to the values of othercoefficients, then the contribution of the corresponding input datax(n−i) to the value of y(n) is relatively insignificant.

FIG. 29B is an equivalent structure of the filter shown in FIG. 29A. Thetwo structures in FIGS. 29A and 29B provide the same filter transferfunction, but differ in certain performance characteristics. Thedifference is due to the placement of the delay elements D_(i), i=1, . .. , N−1 (N=9 in FIGS. 29A, 29B). If all the delay elements are placed inthe input path P_(in), as in the well-known direct form of the FIRfilter, then the registers that are used to implement the delay elementsare small, need only to be of the same size as the input data x(n). Ifall the delay elements are placed on the output path P_(out), as in thewell-known transposed form of the FIR filter, then the registers used asthe delay elements must have more bits in order to hold the largestpossible sum of products C_(i)*x(n−i). Large registers cost more andconsume more power than small registers. Thus, the advantage of placingthe delay elements on the input path instead of the output path is thatfewer register bits are required. However, the larger the number of thedelay elements on the input path, the lower the operating speed of thefilter is.

If the propagation delay from the input of the filter to the last tapexceeds the required clock period, then the filter is not usable. Tobreak the long propagation delay, that would occur if all the delayelements were placed on the input path P_(in), into small delayintervals, some of the delay elements are placed on the output pathP_(out), at regular intervals, as shown in the filter structures inFIGS. 29A and 29B. The structure in FIG. 29B, which has a “two-to-one”split of delay elements between the input path and the output path, canoperate at a higher clock speed than the structure in FIG. 29A, whichhas a “three-to-one” split. Computational results show that both ofthese structures are acceptable for use in a high-speed system such asthe gigabit transceiver.

The taps of the adaptive FIR filters used in the gigabit transceiver canbe switched from an active state to an inactive state. FIG. 29C shows amodification to the structure of FIG. 29B to bypass a deactivated tap.

Referring to FIG. 29C, the filter structure includes a bypass circuitfor each adder A_(i), i=0, . . . , N−1. Each bypass circuit includes agate G_(i) indicated as an AND gate, and a multiplexer U_(i). Alsoassociated with each bypass circuit is a control signal S, whichindicates the active or inactive state of the tap having the coefficientC_(i) and the adder A_(i). S_(i) is set equal to one if the tap isintended to be active, and set equal to zero if the tap is intended tobe inactive. When S_(i)=1, the output of any arbitrarily chosen gateG_(i) is equal to the data signal at the input of that gate G_(i). Atthe corresponding multiplexer U, in the case where S_(i)=1, only theoutput signal from the adder A, is outputted by the multiplexer. In thecase where S_(i)=0, the output of gate G_(i) is zero, and the datasignal at the input of gate G_(i) flows to the multiplexer U_(i) via thecorresponding bypass connection B_(i), bypassing the adder A_(i). At themultiplexer U_(i), due to S_(i)=0, only the data signal from the bypassconnection B_(i) is outputted.

The foregoing is only one exemplary implementation of a filterconfiguration wherein taps can be switched between active and inactivestates. An alternative implementation is one where the multipliers M_(i)coupled to receive filter coefficients from associated coefficientregisters are able to be switched between active and inactive states.

FIG. 29D is a semi-schematic block diagram of a multiplier 2900, such asmight be associated with each tap coefficient. The multiplier 2900 isconfigured to receive a coefficient word, from a correspondingcoefficient register. The coefficient word is received in a multiplexercircuit 2902, which receives the coefficient in two configurations: afirst “raw” configuration taken directly from the coefficient register,and a second “times 2” configuration taken from the register but shiftedone position to the left. The second coefficient configuration, then,represents the “raw” value multiplied by two. Since the secondcoefficient configuration is a shifted one and, necessarily contains onefewer bit than the “raw” coefficient, the “times two” coefficient set ispadded by the bit value 0 (this is done by tying the least significantbit to V_(SS), which is ground). This is a particularly efficientimplementation of a multiplier which takes advantage of the fact thatthe symbols can only have the values {−2, −1, 0, +1, +2}. The symbolsare represented by three bits in sign-magnitude representation, with bit2 indicating the sign (+ or −).

A select OR gate 2904 “ORs” an OFF signal with the value of symbol bit 0to select which coefficient representation is selected to pass throughthe multiplexer 2902. When the value of symbol bit 0 is 1, the “raw”coefficient, representing either −1, 0, +1 is selected. When OFF isequal to logical 1, the same condition applies. The coefficient selectedby multiplexer 2902 is directed to one input of an XOR gate where it isexclusively “ORed” with an output signal from a select AND gate 2908.The AND gate 2908 “ANDs” an inverted OFF signal with the symbol bit 2value. When OFF is logical 0, i.e., inverted OFF is logical 1, and whensymbol bit 2 is 1, the XOR functions to designate that the sign of thecoefficient is negative. It should be understood that the XOR isconfigured as a stack (of 10 individual XOR gates), and thatmanipulation of the carry bit determines the sign of the coefficients.

The signed coefficient is directed to an additional AND gate 2910, whereit is “ANDed” with the output of a second select AND gate 2912. Theoutput of second select AND gate 2912 is developed by “ANDing” theinverted OFF signal with the “ORed” result between symbol bits 0, 1 and2. The effective function of OR gate 2914 is to differentiate betweenthe symbol zero value and the other symbol values. In effect, OR gate2914 is a symbol {0} detect circuit.

Tap disablement is a function of the OFF signal value. When OFF islogical 1, the multiplexer is set to select “one,” i.e., the “raw”coefficient. When OFF equal to logical 1, inverted OFF is logical 0,causing the first and second select AND gates 2908 and 2912 to output azero regardless of the value of the symbol bit input. Since the outputof AND gate 2912 is zero, the AND gate stack 2910 also outputs a zero,which is directed to a corresponding tap adder A_(i) in the output pathof the adaptive filter (FIG. 29A, 29B or 29C). Adding a zero requires nocomputation and the tap is thus effectively deactivated.

The underlying reason for ORing the OFF signal in the OR gate 2904 andfor ANDing the inverse OFF signal in the AND gate 2908 is to ensure thatno transitions take place inside the multiplier when the tap isdeactivated. Without the OFF signal as input to the OR gate 2904, theselect input to the multiplexer 2902 will toggle depending on the valueof the symbol bit 0. Without the inverse OFF signal as input to the ANDgate 2908, one of the two inputs to the XOR 2906 will toggle dependingon the value of the symbol bit 2. This toggling, or transition, woulddissipate power. The reason for ANDing the inverse OFF signal in the ANDgate 2912 is to ensure that the multiplier output (which is the outputof AND gate 2910) is zero when the tap is deactivated.

Referring back to FIG. 2, the adaptive FIR filters used as the echocanceller 232 and the three NEXT cancellers 229, 230 and 231, requirelarge numbers of taps to be effective as cancellers for a wide range oftwisted pairs of cables. Echo/NEXT responses differ for differentcables, and require different taps in the cancellers to model them.Therefore, cancellers are built with enough taps to provide adequatecancellation with the worst-case expected cable responses. For example,in the illustrated embodiment of the gigabit transceiver of FIG. 2, eachecho canceller has one hundred ninety two (192) taps, and each NEXTcanceller has thirty six (36) taps (it is noted that there is also atotal of 132 taps in the DFE which are always active). Since there arefour echo cancellers (one per constituent transceiver) and twelve NEXTcancellers (three per constituent transceiver) in the gigabittransceiver, the total number of taps that can be activated ordeactivated in the gigabit transceiver is twelve hundred (1200). Whenactive, each of these taps consumes a small amount of power. Due totheir large number, if all of the taps are active at the same time,their individual power consumption values will sum to significantlylarge total power consumption figure. This power consumption, if notregulated, generally causes a high degree of localized heating in anintegrated circuit; often resulting in reliability issues, skewedcircuit performance and, in some cases, catastrophic device failure.

Regulation of this power consumption is possible since not all of thetaps are required to be active on any given channel at any given time.The taps that are not required to be active are the ones that do notsignificantly contribute to the performance of the system. However,which taps are not required to be active at a given time is not known apriori. Such unnecessary taps can become needed at a different time dueto dynamic changes in the cable response. The present inventiondynamically determines which, if any, taps are unnecessary for adequateperformance in a particular application, and deactivates them. Thepresent invention also re-activates any previously deactivated taps thatsubsequently become necessary, due to changes in the cable response, forsystem performance improvement. As applied to the adaptive filters, themethod of the present invention might be characterized as a tap powerregulation method.

FIG. 30 is a flowchart of a first exemplary embodiment of a method forimplementing principles of the present invention. A specified error anda specified power are provided. They may be specified by a user. Thespecified power represents the maximum power consumption that isallowed. If no power is specified, it is assumed to be infinite. Thespecified error represents the maximum degradation of the systemperformance that is allowed and is preferably expressed as a meansquared error (MSE). Since the signal power is constant, the MSEcorresponds to a ratio of mean squared error to signal (MSE/signal)usually expressed in decibels (dB).

In FIG. 30, before the start of process 3000, no coefficient is active.Upon start (block 3002), process 3000 initializes a threshold to a value(block 3004). This initial value of the threshold can result from asimulation test, or can be equal to the minimum absolute value of a tapcoefficient (as known from past experiments). This value is not criticalas long as it is sufficiently low to avoid a large degradation of thesystem performance. The taps in a first block are activated (block3006). The size of this first block, i.e., the number of taps in thefirst block, depends on the application. In one application, this numberis 120. The coefficients of the active taps are trained with the LMSalgorithm until convergence (block 3008).

The absolute values of the active tap coefficients are compared with thethreshold (block 3010). The taps whose absolute values are less than thethreshold are deactivated (block 3012). An error metric, typically amean squared error (MSE) corresponding to a ratio of mean squared errorto signal, and a power metric are computed (block 3014). Process 3000then checks whether a first test is satisfied (block 3016). In the firstembodiment of the invention, this first test is satisfied when the errormetric is greater than the specified error and the power metric issmaller than the specified maximum power. If the error metric is greaterthan the specified error, this implies that the threshold has been settoo high, causing too many taps to be deactivated, and this has degradedthe system performance by more than the specified amount. If the firsttest is satisfied, then the threshold is decreased (block 3018), and allthe taps in the block being considered are activated again (block 3006)and process 3000 proceeds with a lower threshold. Otherwise, process3000 determines whether all the taps of the filter have been considered(block 3020). If not, then the next block of taps is considered, andthis new block of taps is activated (block 3006). A typical size of thisnext block of taps is 20. All of the active tap coefficients, includingthe new activated tap coefficients, are converged with an LMS algorithm(block 3008) and process 3000 proceeds as described above.

If all of the taps have been considered, then process 3000 checkswhether a second test is satisfied (block 3024). In the first embodimentof the invention, the second test is satisfied when the error metric issmaller than the specified error or the power metric is larger than thespecified power. If the error metric is smaller than the specifiederror, this implies that it is possible to increase the threshold todeactivate more taps and still meet the system performance requirement.If the power metric is greater than the specified power, then thethreshold must be increased to lower the power consumption, regardlessof the system performance requirement. If the second test is satisfied,then the threshold is increased (block 3026) and the active taps arecompared with the updated threshold (block 3010). Otherwise, process3000 turns off the power on the taps that are subsequent to the tapwhich has the last highest ordered active coefficient (block 3028). Inother words, if C_(k) is the last highest ordered active coefficient,then all the taps that have the deactivated coefficients C_(k+1) throughC_(N−1) are powered down. More details on the power down function inblock 3028 are provided below. Process 3000 then terminates (block3030).

When process 3000 is restarted (block 3032), a block of taps isactivated (block 3006). Upon restart of process 3000, the threshold isat its last value from the last application of process 3000. Thecoefficients that were previously deactivated are activated with theirvalues remaining at their last values before deactivation. Then process3000 proceeds as described above.

Periodic restart of process 3000 is desirable for the following reason.In some cases, the echo/NEXT path impulse response may change duringnormal operation. For example, this change may be a result oftemperature changes. To correct for this change, process 3000periodically restarts to turn on the deactivated coefficients in asequential manner (block 3006), re-converges the coefficients (block3008), and determines whether the previously deactivated coefficientsare still below the threshold (block 3010). If the previouslydeactivated coefficients are now converged to values above thethreshold, they remain active, otherwise they are deactivated (block3012). Any of the initially active coefficients that now fall below thethreshold are also deactivated (block 3012).

The underlying reason for activating the taps a few at a time (block3006 through 3020) is the following. When the total number of taps isvery large, the power consumption can be very large during the initialconvergence transient. This peak power consumption is very undesirable,and is unaffected by the tap power regulation process (which can onlyreduce the average power consumption of the filters). One solution tothis peak power consumption problem is to activate and converge the tapsin an initial small block of taps (blocks 3006, 3008), deactivate someof the converged taps according to a criterion (block 3010 through block3020), activate a next block of taps (block 3006), converge all theactive taps including the newly activated taps (block 3008), and repeatthe process of deactivation, activation and convergence until all thetaps of the filter are processed.

Power-down block 3028, which is optional, of process 3000 helps furtherreduce the power consumption of the adaptive filters. Without block3028, although the tap power regulating process 3000 already achieves alarge reduction of the power consumption by reducing the number ofactive taps, there is still a significant amount of power dissipated bythe long delay line of the adaptive filter. By delay line, it is meantthe line connecting the delay elements together. Turning a tap off doesnot necessarily affect the configuration of the delay line. However, inmany practical cases, many of the deactivated taps are locatedcontiguously at the highest-ordered end of the filter. An example ofsuch a case is when the cable is short and well behaved. In such cases,the portion of the delay line associated with these contiguouslydeactivated taps can be completely powered down without affecting thetransfer function of the filter. This powering down contributes anadditional reduction of power dissipation of the filter. In oneexemplary application, this additional reduction of power dissipation isapproximately 300 milliWatts (mW) per echo canceller and 70 mW per NEXTcanceller, resulting in a power saving of 2.04 Watts for the gigabittransceiver.

An exemplary implementation of block 3028 is as follows. An additionalbit, called the delay line enable bit, is associated with each tap of afilter. This bit is initially ON. When process 3000 reaches block 3028,all of the taps are scanned for active status starting from thehighest-ordered end of the filter, i.e., the tap including thecoefficient C_(N−1), towards the lowest-ordered end, i.e., the tapincluding the coefficient C₀. During scanning, the delay line enablebits of the scanned inactive taps are switched OFF until the firsthighest-ordered active tap is found. At this point, the scanning for tapactive status terminates. Then all the delay line sections correspondingto the taps whose delay line enable bits are OFF are powered down.

Activation block 3006 of FIG. 30 is applied sequentially to the echocanceller 232 and the three NEXT cancellers 229, 230 and 231 (of FIG.2). FIG. 31 illustrates the flowchart of one exemplary embodiment of theactivation block 3006.

Referring to FIG. 31, upon start (block 3102), the process 3006 sets thefilter number to zero (block 3104) to operate on the echo canceller. Thefilter number zero represents the echo canceller, while filter numbers 1through 3 represent the three NEXT cancellers, respectively. Process3006 then sets the address and the end equal to the start address andthe end address of the block of taps, respectively (block 3106). Themodules TapOn and Tap PowerUp are invoked with the address as argument(block 3108). The module TapOn turns on the circuitry of the tap havingthe specified address. This circuitry includes a 1-bit storage toindicate the active status of the tap. When the tap is turned on, thetap is included in the computation of the output y(n) of the filter(referring to Equation (1)), and in the adaptation process, i.e., thetraining and convergence of the filter coefficients. The moduleTapPowerUp turns the power on for the delay line section associated withthe tap having the specified address. Process 3006 then determineswhether the address is equal to the end. If it is not, then the addressis increased by one (block 3112), to consider the next tap of thefilter. If the address has reached the end address of the block of taps,then process 3006 determines whether filter number is equal to 3, i.e.,whether all the filters in the transceiver have been considered (block3114). If not, then filter number is increased by one, so that the nextfilter is considered. If process 3006 has operated on all the filters,then process 3006 sets the start address equal to the old end address,and sets the new end address equal to the sum of the old end address andthe block size, the block size being the size of the next block of tapsto be activated (block 3118). Process 3006 then terminates (block 3120).

Deactivation block 3012 of FIG. 30 is applied sequentially to the echocanceller 232 and the three NEXT cancellers 230 (of FIG. 2). FIG. 32illustrates the flowchart of one embodiment of the deactivation block3012.

Referring to FIG. 32, upon start (block 3202), the process 3012 sets thefilter number to zero (block 3204) to operate on the echo canceller. Thefilter number zero represents the echo canceller, while filter numbers 1through 3 represent the three NEXT cancellers, respectively. Process3012 then sets the address equal to zero and the end equal to the lengthof the filter minus 1 (block 3206). If the absolute value of the tapcoefficient at the specified address is less than T, the threshold, thenthe module TapOn is invoked to turn off the circuitry associated withthe tap having the specified address (block 3208). When the tap isturned off, the tap is removed from the computation of the output y(n)of the filter (referring to Equation (1)), and from the adaptationprocess, i.e., the training and convergence of the filter coefficients.Process 3012 then determines whether the address is equal to the end. Ifit is not, then the tap address is increased by one (block 3212), toconsider the next tap of the filter. If the address has reached the endof the filter taps, then process 3012 determines whether filter numberis equal to 3, i.e., whether all the filters in the transceiver havebeen considered (block 3214). If not, then filter number is increased byone, so that the next filter is considered (block 3216). If process 3012has operated on all the filters, then process 3012 terminates (block3218).

Error-computing block 3014 of FIG. 30 is applied sequentially to theecho canceller 232 and the three NEXT cancellers 230 (of FIG. 2). FIG.33 illustrates the flowchart of one embodiment of the error-computingblock 3014.

Referring to FIG. 33, upon start (block 3302), the process 3014 sets thefilter number to zero (block 3304) to operate on the echo canceller, andinitializes the error metric MSE, the power metric and the flag. Thefilter number zero represents the echo canceller, while filter numbers 1through 3 represent the three NEXT cancellers, respectively. Process3014 then sets the address equal to the length of the filter minus 1(block 3306) to scan the filter taps from the highest ordered end. Thereason for using this scanning order and the flag is to ensure that thetaps that will be powered down in block 3028 of FIG. 30 will be excludedfrom the computation of the power metric. A deactivated tap stillconsumes a small amount of power if it is not actually powered downbecause of the associated delay line section. To compute the new powermetric such that it can be used to accurately regulate the powerconsumption of the system, the process 3014 must exclude from thecomputation the power consumption of a deactivated tap that will bepowered down.

If TapOn[addr] is zero, i.e., if the tap at the specified address isturned off, then process 3014 computes the new error metric MSE byadding to the previous value of MSE the squared value of the tapcoefficient at the specified address. Otherwise, if the tap at thespecified address is on, then the flag is set to 1. If the flag is 1,then process 3014 computes the new power metric by adding to theprevious value of the power metric the estimated power consumptionTapPower of the tap having the specified address (block 3308). TapPoweris chosen from precomputed values stored in a look-up table. Theseprecomputed values are functions of the size of the coefficients and ofthe active or inactive status of the coefficient.

Process 3014 determines whether the address is 0 (block 3310). If it isnot, then the tap address is decreased by one (block 3312), to considerthe next tap of the filter. If the address has reached 0, then process3014 determines whether filter number is equal to 3, i.e., whether allthe filters in the transceiver have been considered (block 3314). Ifnot, then filter number is increased by one, so that the next filter isconsidered and the flag is reset to 0 (block 3316). If process 3014 hasoperated on all the filters, then process 3014 terminates (block 3318).

As shown in FIG. 33, the error metric MSE is computed by summing thesquared values of the deactivated tap coefficients. It is noted that theerror metric can be computed differently, such as deriving it from theerror component 42A of the 4-D error signal 42 outputted from thetrellis decoder 38 (FIG. 2).

The MSE as measured from the error output 42 of the trellis decoder 38(FIG. 2) will be, hereinafter, referred to as the true MSE. The MSE asmeasured by summing the squared values of the coefficients of thedeactivated taps will be, hereinafter, referred as the proxy MSE.

There is an advantage in using the proxy MSE, instead of the true MSE,as the error metric. Since the proxy MSE is based solely on thecoefficient values of the deactivated taps, it represents only onecomponent of the noise signal of the gigabit transceiver (othercomponents may be due to quantization noise, external noise, etc.).Therefore, the proxy MSE is unaffected when large external noise, otherthan echo or NEXT noise, severely affects the noise signal, hence thenoise to signal ratio, of the gigabit transceiver. For this reason, theproxy MSE is preferred as the error metric.

If the true MSE is used as the error metric, then the specified error ispreferably set at a value corresponding to a noise to signal ratio ofabout B22 dB, because, although theoretically, a true MSE correspondingto a noise to signal ratio of B19 dB is acceptable for the gigabittransceiver, in practice, it is difficult to obtain adequate systemperformance at that level. If the proxy MSE is used as the error metric,then the specified error is preferably set at a value corresponding to anoise to signal ratio of about B24 dB.

Power-down block 3028 of FIG. 30 is applied sequentially to the echocanceller 232 and the three NEXT cancellers 230 (of FIG. 2). FIG. 34illustrates the flowchart of one embodiment of the power-down block3028.

Referring to FIG. 34, upon start (block 3402), the process 3028 sets thefilter number to zero (block 3404) to operate on the echo cancellerfirst. The filter number zero represents the echo canceller, whilefilter numbers 1 through 3 represent the three NEXT cancellers,respectively. Process 3028 then sets the address equal to the length ofthe filter minus 1 and the end equal to zero (block 3406). This meansthat the process 3028 starts from the highest ordered end of the filtertowards the lowest ordered end.

Process 3028 determines whether TapOn[addr] is 1, i.e., whether the tapat the specified address is active (block 3408). If the tap is notactive, then process 3028 turns off the power to the tap (block 3410),then checks whether the address is equal to the end (block 3412). If theaddress is not equal to the end, the address is decreased by 1 toconsider the next lower ordered tap (block 3414). If the address hasreached the end, then process 3028 determines whether the filter numberis 3, i.e., whether all the 4 filters have been considered (block 3416).If the filter is not the last one, then filter number is increased by 1so that the next filter is considered (block 3418). Otherwise, process3028 terminates (block 3420).

If TapOn[addr] is 1 (block 3408), i.e., if the tap at the specifiedaddress is active, then process 3028 stops scanning the taps in thefilter being considered, and checks the next filter, if any (block3416). Process 3028 then proceeds as described above.

The process 3000 of FIG. 30 is applied to the echo and NEXT cancellersof each of the 4 constituent transceivers of the gigabit transceiver 102depicted in FIGS. 2 and 3. It is important to note that, if process 3000is applied simultaneously to the 4 constituent transceivers, there willbe a power demand surge in the gigabit transceiver 102. In order toavoid such a power demand surge, process 3000 is applied to the 4transceivers in a time-staggered manner.

In a second embodiment of the present invention, two different specifiederrors are used in order to avoid possible limit cycle oscillationsbetween activation and deactivation. The flowchart of the secondembodiment is substantially similar to the one shown in FIG. 30. Thesecond embodiment differs from the first embodiment by using a firstspecified error for the first test in block 3016 (FIG. 30) and a secondspecified error for the second test in block 3024. The first specifiederror is substantially larger than the second specified error. The useof the two different specified errors, sufficiently distant from eachother, allow the process 3000 to terminate when the computed errormetric has a value located between the two specified errors. When justone specified error is used, as in the first embodiment, the computederror metric may jump back and forth around the specified error, causingthe process 3000 to oscillate between activation and deactivation.

In a third embodiment of the present invention, the first few taps ofeach filter, e.g., the first 10 taps, are exempt from deactivation inorder to avoid possible degradations of the system performance in thepresence of jitter. The effect of jitter on these few taps is asfollows. There is usually a large slew rate in these first few taps. Dueto this slew rate, their numerical values could change significantly ifthe sampling phase of the received signal changes. In the presence ofjitter, the sampling phase of the received signal can changedynamically. Thus, if some of the first few taps were insignificant forthe system performance, they could become significant as the samplingphase changes. For this third embodiment, the flowchart of thedeactivation process of block 3012 is slightly different from the oneshown in FIG. 30. The only modification to the flowchart of FIG. 30 isto equate, in block 3006, the address to K instead of 0, where K+1 isthe number of the first few taps exempt from deactivation.

A fourth embodiment of the present invention uses, as the error metric,the change in the true MSE instead of the true MSE. In other words, thevalue of {new (true MSE) B old (true MSE)} is computed and used as theerror metric. In the fourth embodiment, the first test in block 3016 issatisfied if the change in the true MSE is greater than a specifiedchange value (e.g., a value that corresponds to a noise to signal ratio(NSR) change of 1 dB) and the power metric is smaller than the specifiedmaximum power. The second test in block 3024 is satisfied if the changein the true MSE is smaller than the specified change value or the powermetric is greater than the specified maximum power. For example, if thetrue MSE is at a value corresponding to a NSR of B25 dB before the tappower regulating process is applied, and if the specified change valuecorresponds to a NSR change of 1 dB, then the final true MSE will be ata value corresponding a NSR of about B24 dB. This fourth embodiment canbe used when there is large external noise that is other than echo orNEXT noise. In such a case, the true MSE is large even before the tappower regulation process is applied. Thus, if the true MSE is used asthe error metric, practically no taps will be deactivated, resulting inlarge power dissipation. In this situation, since the large noise is notcaused by the uncancelled echo and NEXT impairments, a large number oftaps could be deactivated without causing significant additionaldegradation to the system performance. The fourth embodiment allow thesetaps to be deactivated in this situation.

In a fifth embodiment, all of the taps in a filter are initiallyactivated and converged, instead of being activated in blocks andconverged in stages as in the first embodiment. The flowchart of thefifth embodiment is similar to the one of the first embodiment shown inFIG. 30, except for the following two differences. The first differenceis that, in the activation block 3006, the block of taps is set toinclude all of the taps in the filter. The second difference is that theblock 3020 is not needed.

In each of the embodiments, there are several ways of computing theerror metric. The error metric can be computed as a measurement ofsystem performance degradation caused by the filter being considered, orby the four filters in the constituent transceiver being considered, orby all the 16 filters in the four constituent transceivers of thegigabit transceiver.

When computed as a measurement of degradation caused by all 4 filters ofthe constituent transceiver being examined, the error metric provides agood indication of the bit error rate of that constituent transceiver.

In the case where the error metric is computed as a measurement ofdegradation caused by all the 16 filters in the 4 constituenttransceivers of the gigabit transceiver, the power regulation processcan allow the filters in one of the 4 transceivers to have larger errorand compensate for this error in the filters of the other 3transceivers. For example, if the echo/NEXT impairments in oneparticular transceiver are very severe and too many active taps would beneeded to cancel them, then the power regulation process can allow theimpairments to stay severe in this transceiver, and allocate the powerresource to the other 3 transceivers instead. It is noted that, in thiscase, the trellis decoder 38 still decodes correctly since it usessignal samples from all the four transceivers in its decoding scheme.

When applied to the echo and NEXT cancellers of the gigabit transceiver,for typical channels, the power regulation process of the presentinvention results in a large number of taps being deactivated and thepower consumption being reduced by a large factor. Simulation testsconfirm this result.

FIG. 35 illustrates an exemplary impulse response of the echocharacteristic developed by a typical multi-pair transmission channel inresponse to a known impulse. FIG. 36 illustrates an exemplary impulseresponse of the near end crosstalk (NEXT) characteristics developed by atypical transmission channel in response to a similar known impulse.FIGS. 37A and 37B illustrate the results of simulation programmingperformed to evaluate the application of tap power regulationmethodologies to a local constituent transceiver and a remoteconstituent transceiver connected together through a transmissionchannel having the echo impulse response of FIG. 35.

During the initial period of communication, through a process known asAuto-Negotiation, the two transceivers negotiate then agree on theirrespective status as Master and Slave. FIGS. 37A and 37B show the MSE tosignal ratio expressed in dB as a function of time, with time expressedin bauds, for the Master and Slave transceivers, respectively. Eachpoint on the graphs in FIGS. 37A and 37B is obtained by averaging theinstantaneous measurements taken over 10,000 symbol periods. The errormetric MSE is computed based on the error signal 42A (in FIG. 2), i.e.,the error as seen by the trellis decoder 38 (FIG. 2).

Referring to FIGS. 37A and 37B, during the time interval from 0 baud toabout 1.2×10⁵ bauds, the Master trains its own echo canceller whiletransmitting with an independent, fixed clock. During this timeinterval, the Slave synchronizes to the signal transmitted by theMaster, and trains its feed-forward equalizer and its timing recoveryblock. During the time interval from about 1.2×10⁵ bauds to about2.2×10⁵ bauds, the Slave trains its echo canceller while transmitting.During this time interval, the Master is not transmitting, onlyreceiving from the Slave, and trains its feed-forward equalizer and itstiming recovery block to account for the delay in the channel. By theend of this time interval, the Master and Slave are synchronized witheach other.

During the time interval from about 2.2×10⁵ bauds to about 3.2×10⁵bauds, both the Master and Slave transmit and receive. During this timeinterval, the Master retrains its echo canceller and readjust timing.From about 3.2×10⁵ bauds, there is convergence of both Master and Slaveecho cancellers. At about 3.6×10⁵ bauds, the tap power regulatingprocess of the present invention is applied to both echo cancellers,with the specified error, i.e., the maximum acceptable systemperformance degradation, set at a value corresponding to a NSR of −24dB. As shown in FIGS. 37A and 37B, for both local and remotetransceivers, the MSE increases to and stays at this specified errorcorresponding to a NSR of B24 dB. In this example, in each constituenttransceiver, the echo canceller has initially 140 taps, and each of thethree NEXT cancellers has initially 100 taps. The total number ofinitial taps in each constituent transceiver is 440.

FIGS. 38A and 38B are graphs of the values of the tap coefficients ofthe echo canceller as a function of the tap number, after application ofthe tap power regulation process with the specified error set at valuescorresponding to noise to signal ratio of −24 dB and −26 dB,respectively. The deactivated coefficients are shown as having valuezero.

Referring to FIG. 38A, the number of taps remaining active, afterapplication of the tap power regulation process with the specified errorcorresponding to a NSR of B24 dB, is 22. For this specified error, theremaining active taps for the three NEXT cancellers is 6, 2, and 0,respectively (not illustrated). Thus, out of a total of 440 initiallyactive taps in the constituent transceiver, only 30 remain active afterapplication of the process of the present invention, while a 5 dB marginis maintained for the required bit error rate.

Referring to FIG. 38B, after application of the tap power regulationprocess with the specified error corresponding to a NSR of B26 dB, thenumber of taps remaining active is 47. For this specified error, theremaining active taps for the three NEXT cancellers (not illustrated) is6, 2, and 0, respectively. Thus, out of a total of 440 initially activetaps in the constituent transceiver, only 55 remain active afterapplication of the process of the present invention, while a 7 dB marginis maintained for the required bit error rate.

FIGS. 38A and 38B show that the surviving taps occur at sparselocations. This is due to the strong dependence of the echo/NEXTcancellers on the specific cable response. Since the responsecharacteristics of any given cable making up the transmission channelare not a priori determinable, it would be impossible, in practice, topredict and statically allocate the surviving taps during the design ofthe echo and NEXT cancellers. Therefore, some sort of dynamic active tapidentification and allocation process according to the invention offerssignificant power reduction benefits over conventional methodologies.

While the systems and methods of the invention have been describedmainly in terms of their applicability to adaptively configuring activetap sets for high order digital filters, the dynamic power regulationmethodology of the present invention can also be applied to completecomputation modules of a transceiver, in cases where the computationalpower of such modules is not needed for a particular application. Inthese cases, a similar methodology applies, i.e., evaluate a signalperformance metric of a signal output from a computational moduleagainst a performance threshold and, where the performance metric isgreater than the threshold, power down the computational module.

This additional embodiment of the invention is particularly advantageousin cases where the transmission channel might be implemented with short(<3 meters) cable lengths, resulting in the relative absence oftransmission channel induced intersymbol interference (ISI). Returningmomentarily to the description of the trellis decoder circuitaccompanying FIG. 3, in the absence of intersymbol interference, symbolsreceived from the deskew memory 37 need only be decoded by the Viterbidecoder 604, and its associated modules, i.e., the path metrics module606, and the path memory module 608, without resorting to adecision-feedback sequence estimation approach, as discussed previously.In this case, the dynamic power regulation process reduces the powerconsumption of the gigabit transceiver by deactivating and bypassing thecomputational modules represented by the MDFE 602, the DFE 612 and theselect logic 610. Since received symbols are relatively unaffected bychannel induced ISI, there is no need to develop ISI compensation forincoming signal samples prior to symbol decode, and therefore no needfor ISI compensation circuitry.

FIG. 39 is a simplified, semi-schematic block diagram of an exemplarytrellis decoder 38 as it might be implemented in the case where it hasbeen determined that there is substantially no channel inducedintersymbol interference. Referring to FIG. 39, the 4-D output signal 37from the deskew memory 36 is provided directly to the Viterbi decoder604, as the Viterbi input. In accordance with the invention, it shouldbe noted that, in the absence of intersymbol interference, only a single4-D Viterbi input is needed in contrast to the eight state inputsrequired in the full ISI compensation case.

As illustrated in FIG. 39, the DFE, MDFE and decoder circuitry has beenreplaced by a series of simple delay stages and an adder circuit, withthe deskew output signal (a signal sample) directly input to the Viterbidecoder 604. The deskew output signal sample is also directed through aset of three series coupled sequential delay stages 3920, 3922 and 3924and then to an adder circuit 3926. Signal samples are added to thenegative of the first tentative decision V_(OF) output by the pathmemory module 608 in the adder circuit 3926 in order to develop an errorterm. The error term is directed through an additional delay stage 3928after which the error term 42 might be directed to an adaptive gainstage (34 of FIG. 2) and timing recovery circuit (222 of FIG. 2). In theexemplary embodiment shown in FIG. 39, the 4-D error 42 is computed asthe delayed difference between the delayed 4-D input 37 and the 4-Doutput V_(0F) of the path memory module 608. The corresponding 4-Dtentative decision 44 may be represented as nothing more than a delayedversion of the 4-D output V_(0F) of the path memory module 608; thedelay occurring in an additional delay stage 3930. In the embodimentshown in FIG. 39, the error and tentative decision delay elements 3928and 3930, respectively, are used to ensure that the error 42 and thetentative decision 44 arrive at the timing recovery block (222 of FIG.2) at the same time. Depending on the design and implementation of thetiming recovery block, these delay elements may not necessarily beneeded in alternative embodiments.

FIG. 40 illustrates yet a further embodiment of the invention which isparticularly advantageous in situations where the signal-to-noise ratiois very high (as may happen with a short cable, e.g., of less than 50meters). In such situations, the coding gain provided by the trelliscode may not be needed, and adequate system performance, as indicated bythe bit error rate, may be achieved without making use of this codinggain. In these situations, substantial power dissipation reductions canbe achieved by disabling the trellis decode enabling features of thecomplex Viterbi decoder, including the Viterbi decoder block 604, itsassociated path metric and path memory modules 606 and 608, and a largeportion of the ISI compensation circuitry including the MDFE 302 and theselect logic 610. These portions are replaced, or substituted, with asimple symbol-by-symbol decoder and a simple decision feedback equalizerto detect the received signal, instead of using the computationallycomplex Viterbi decoder.

Referring to FIG. 40, signal samples output by the deskew memory aredirected through an adder circuit 4032, which determines the differencebetween the input signal samples and the 4-D output of a DFE 4034. Asymbol-by-symbol decoder 4036 receives the difference between the 4-Dsignal samples and the 4-D output from the DFE 4034 and decodes it. A4-D tentative decision 44 is taken directly from the output of thesymbol-by-symbol decoder 4036, and an error term 42 is developed by anadditional adder circuit 4038, coupled to define the difference betweenthe input and the output of the symbol-by-symbol decoder 4036. A softdecision 43, which is used for display purposes only, is taken directlyfrom the input of the symbol-by-symbol decoder 4036.

Final decisions are developed by delaying the output of thesymbol-by-symbol decoder through three series coupled sequential delaystages 4040, 4042 and 4044. The output of each respective delay stage isdirected to the DFE as a corresponding tentative decision V_(0F), V_(1F)and V_(2F).

In each of the cases described in connection with FIGS. 39 and 40, itwill be understood that the surviving elements of the decoder sectionare all present in a fully functional Viterbi decoder system with ISIcompensation. Such a system is described in co-pending U.S. patentapplication entitled System and Method for High-Speed Decoding and ISICompensation in a Multi-Pair Transceiver System, filed on instant dateherewith and commonly owned by the assignee of the present invention,the entire contents of which are expressly incorporated by reference. Asdecisions are made with regard to the desirability of maintaining thecircuitry in a fully operational condition or truncating certaincomputational sections in an effort to reduce power dissipation, thesystem need only remove power from certain identified portions of thecircuitry, with other identified portions allowed to remain powered-upin the active signal path. No additional component circuit elements needbe provided.

The dynamic power regulation methodology of the present invention canalso be applied to any other component module of a communication system,so long as that module is able to provide a given minimal level ofperformance with a truncated functional representation or with truncatedcircuitry. Of course, such minimal performance levels will obtain inonly certain situations and are dependent on external factors,particularly the transmission channel characteristics. However, thesesituations frequently appear in a substantial number of applications orinstallations. An integrated circuit transceiver capable of adaptivelyconfiguring itself to provide a “just sufficient” level of performancewhile operating at the lowest obtainable power dissipation levels wouldlend itself to almost universal application.

The present invention further provides a method and a timing recoverysystem for generating a set of clock signals in a processing system. Theset of clock signals includes a set of sampling clock signals. Theprocessing system includes a set of processing subsystems, each of whichincludes an analog section. Each of the analog sections operates inaccordance with a corresponding sampling clock signals. An example ofthe processing system is a gigabit transceiver. In this case, theprocessing subsystems are the constituent transceivers.

The present invention can be used to generate and distribute clocksignals in a gigabit transceiver of a Gigabit Ethernet communicationsystem such that effect of switching noise coupled from one clock domainto another clock domain is minimized. By “clock domain,” it is meant thecircuit blocks that are operating according to transitions of aparticular clock signal. For ease of explanation, the present inventionwill be described in detail as applied to this exemplary application.However, this is not to be construed as a limitation of the presentinvention.

In order to appreciate the advantages of the present invention, it willbe beneficial to describe the invention in the context of an exemplarybi-directional communication device, such as an Ethernet transceiver.The particular exemplary implementation chosen is depicted in FIG. 1,which is a simplified block diagram of a multi-pair communication systemoperating in conformance with the IEEE 802.3ab standard (also termed1000BASE-T) for 1 gigabit (Gb/s) Ethernet full-duplex communication overfour twisted pairs of Category-5 copper wires.

In FIG. 1, the communication system is represented as a point-to-pointsystem in order to simplify the explanation, and includes two maintransceiver blocks 102 and 104, coupled together via four twisted-paircables 112 a, b, c and d. Each of the wire pairs 112 a, b, c, d iscoupled to each of the transceiver blocks 102, 104 through a respectiveone of four line interface circuits 106. Each of the wire pairs 112 a,b, c, d facilitates communication of information between correspondingpairs of four pairs of transmitter/receiver circuits (constituenttransceivers) 108. Each of the constituent transceivers 108 is coupledbetween a respective line interface circuit 106 and a Physical CodingSublayer (PCS) block 110. At each of the transceiver blocks 102 and 104,the four constituent transceivers 108 are capable of operatingsimultaneously at 250 megabits of information data per second (Mb/s)each, and are coupled to the corresponding remote constituenttransceivers through respective line interface circuits to facilitatefull-duplex bi-directional operation. Thus, 1 Gb/s communicationthroughput of each of the transceiver blocks 102 and 104 is achieved byusing four 250 Mb/s (125 Mbaud at 2 information data bits per symbol)constituent transceivers 108 for each of the transceiver blocks 102, 104and four pairs of twisted copper cables to connect the two transceiverblocks 102, 104 together.

The exemplary communication system of FIG. 1 has a superficialresemblance to a 100BASE-T4 system, but is configured to operate at tentimes the bit rate. As such, it should be understood that certain systemperformance characteristics, such as sampling rates and the like, willbe consequently higher and cause a greater degree of power consumption.Also, at gigabit data rates over potentially noisy channels, aproportionately greater degree of signal processing is required in manyinstances to insure an adequate degree of signal fidelity and quality.

FIG. 2 is a simplified block diagram of the functional architecture andinternal construction of an exemplary transceiver block, indicatedgenerally at 200, such as transceiver 102 of FIG. 1. Since theillustrative transceiver application relates to gigabit Ethernettransmission, the transceiver will be referred to as the “gigabittransceiver.” For ease of illustration and description, FIG. 2 showsonly one of the four 250 Mb/s constituent transceivers which areoperating simultaneously (termed herein 4-D operation). However, sincethe operation of the four constituent transceivers are necessarilyinterrelated, certain blocks and signal lines in the exemplaryembodiment of FIG. 2 perform four-dimensional operations and carryfour-dimensional (4-D) signals, respectively. By 4-D, it is meant thatthe data from the four constituent transceivers are used simultaneously.In order to clarify signal relationships in FIG. 2, thin linescorrespond to 1-dimensional functions or signals (i.e., relating to onlya single constituent transceiver), and thick lines correspond to 4-Dfunctions or signals (relating to all four constituent transceivers).

Referring to FIG. 2, the gigabit transceiver 200 includes a GigabitMedium Independent Interface (GMII) block 202 subdivided into a receiveGMII circuit 202R and a transmit GMII circuit 202T. The transceiver alsoincludes a Physical Coding Sublayer (PCS) block 204, subdivided into areceive PCS circuit 204R and a transmit PCS circuit 204T, a pulseshaping filter 206, a digital-to analog (D/A) converter block 208, and aline interface block 210, all generally encompassing the transmitterportion of the transceiver.

The receiver portion generally includes a highpass filter 212, aprogrammable gain amplifier (PGA) 214, an analog-to-digital (A/D)converter 216, an automatic gain control (AGC) block 220, a timingrecovery block 222, a pair-swap multiplexer block 224, a demodulator226, an offset canceller 228, a near-end crosstalk (NEXT) cancellerblock 230 having three constituent NEXT cancellers and an echo canceller232.

The gigabit transceiver 200 also includes an A/D first-in-first-outbuffer (FIFO) 218 to facilitate proper transfer of data from the analogclock region to the receive clock region, and a loopback FIFO block(LPBK) 234 to facilitate proper transfer of data from the transmit clockregion to the receive clock region. The gigabit transceiver 200 canoptionally include an additional adaptive filter to cancel far-endcrosstalk noise (FEXT canceller).

In operational terms, on the transmit path, the transmit section 202T ofthe GMII block receives data from the Media Access Control (MAC) modulein byte-wide format at the rate of 125 MHz and passes them to thetransmit section 204T of the PCS block via the FIFO 201. The FIFO 201ensures proper data transfer from the MAC layer to the Physical Coding(PHY) layer, since the transmit clock of the PHY layer is notnecessarily synchronized with the clock of the MAC layer. In oneembodiment, this small FIFO 201 has from about three to about fivememory cells to accommodate the elasticity requirement which is afunction of frame size and frequency offset.

The PCS transmit section 204T performs certain scrambling operationsand, in particular, is responsible for encoding digital data into therequisite codeword representations appropriate for transmission. In theillustrated embodiment of FIG. 2, the transmit PCS section 204Tincorporates a coding engine and signal mapper that implements a trelliscoding architecture, such as required by the IEEE 802.3ab specificationfor gigabit transmission.

In accordance with this encoding architecture, the PCS transmit section204T generates four 1-D symbols, one for each of the four constituenttransceivers. The 1-D symbol generated for the constituent transceiverdepicted in FIG. 2 is filtered by the pulse shaping filter 206. Thisfiltering assists in reducing the radiated emission of the output of thetransceiver such that it falls within the parameters required by theFederal Communications Commission. The pulse shaping filter 206 isimplemented so as to define a transfer function of 0.75+0.25z⁻¹. Thisparticular implementation is chosen so that the power spectrum of theoutput of the transceiver falls below the power spectrum of a 100Base-Txsignal. The 100Base-Tx is a widely used and accepted Fast Ethernetstandard for 100 Mb/s operation on two pairs of Category-5 twisted paircables. The output of the pulse shaping filter 206 is converted to ananalog signal by the D/A converter 208 operating at 125 MHz. The analogsignal passes through the line interface block 210, and is placed on thecorresponding twisted pair cable.

On the receive path, the line interface block 210 receives an analogsignal from the twisted pair cable. The received analog signal ispreconditioned by the highpass filter 212 and the PGA 214 before beingconverted to a digital signal by the A/D converter 216 operating at asampling rate of 125 MHz. The timing of the A/D converter 216 iscontrolled by the output of the timing recovery block 222. The resultingdigital signal is properly transferred from the analog clock region tothe receive clock region by the A/D FIFO 218. The output of the A/D FIFO218 is also used by the AGC 220 to control the operation of the PGA 214.

The output of the A/D FIFO 218, along with the outputs from the A/DFIFOs of the other three constituent transceivers are inputted to thepair-swap multiplexer block 224. The pair-swap multiplexer block 224uses the 4-D pair-swap control signal from the receive section 204R ofPCS block to sort out the four input signals and send the correctsignals to the respective feedforward equalizers 26 of the demodulator226. This pair-swapping control is needed for the following reason. Thetrellis coding methodology used for the gigabit transceivers (102 and104 of FIG. 1) is based on the fact that a signal on each twisted pairof wire corresponds to a respective 1-D constellation, and that thesignals transmitted over four twisted pairs collectively form a 4-Dconstellation. Thus, for the decoding to work, each of the four twistedpairs must be uniquely identified with one of the four dimensions. Anyundetected swapping of the four pairs would result in erroneousdecoding. In an alternate embodiment of the gigabit transceiver, thepair-swapping control is performed by the demodulator 226, instead ofthe combination of the PCS receive section 204R and the pair-swapmultiplexer block 224.

The demodulator 226 includes a feed-forward equalizer (FFE) 26 for eachconstituent transceiver, coupled to a deskew memory circuit 36 and adecoder circuit 38, implemented in the illustrated embodiment as atrellis decoder. The deskew memory circuit 36 and the trellis decoder 38are common to all four constituent transceivers. The FFE 26 receives thereceived signal intended for it from the pair-swap multiplexer block224. The FFE 26 is suitably implemented to include a precursor filter28, a programmable inverse partial response (IPR) filter 30, a summingdevice 32, and an adaptive gain stage 34. The FFE 26 is aleast-mean-squares (LMS) type adaptive filter which is configured toperform channel equalization as will be described in greater detailbelow.

The precursor filter 28 generates a precursor to the input signal 2.This precursor is used for timing recovery. The transfer function of theprecursor filter 28 might be represented as ⁻Υ+z⁻¹, with Υ equal to 1/16for short cables (less than 80 meters) and ⅛ for long cables (more than80 m). The determination of the length of a cable is based on the gainof the coarse PGA 14 of the programmable gain block 214.

The programmable IPR filter 30 compensates the ISI (intersymbolinterference) introduced by the partial response pulse shaping in thetransmitter section of a remote transceiver which transmitted the analogequivalent of the digital signal 2. The transfer function of the IPRfilter 30 may be expressed as 1/(1+Kz⁻¹). In the present example, K hasan exemplary value of 0.484375 during startup, and is slowly ramped downto zero after convergence of the decision feedback equalizer includedinside the trellis decoder 38. The value of K may also be any positivevalue strictly less than 1.

The summing device 32 receives the output of the IPR filter 30 andsubtracts therefrom adaptively derived cancellation signals receivedfrom the adaptive filter block, namely signals developed by the offsetcanceller 228, the NEXT cancellers 230, and the echo canceller 232. Theoffset canceller 228 is an adaptive filter which generates an estimateof signal offset introduced by component circuitry of the transceiversanalog front end, particularly offsets introduced by the PGA 214 and theA/D converter 216.

The three NEXT cancellers 230 may also be described as adaptive filtersand are used, in the illustrated embodiment, for modeling the NEXTimpairments in the received signal caused by interference generated bysymbols sent by the three local transmitters of the other threeconstituent transceivers. These impairments are recognized as beingcaused by a crosstalk mechanism between neighboring pairs of cables,thus the term near-end crosstalk, or NEXT. Since each receiver hasaccess to the data transmitted by the other three local transmitters, itis possible to approximately replicate the NEXT impairments throughfiltering. Referring to FIG. 2, the three NEXT cancellers 230 filter thesignals sent by the PCS block to the other three local transmitters andproduce three signals replicating the respective NEXT impairments. Bysubtracting these three signals from the output of the IPR filter 30,the NEXT impairments are approximately cancelled.

Due to the bi-directional nature of the channel, each local transmittercauses an echo impairment on the received signal of the local receiverwith which it is paired to form a constituent transceiver. In order toremove this impairment, an echo canceller 232 is provided, which mayalso be characterized as an adaptive filter, and is used, in theillustrated embodiment, for modeling the signal impairment due to echo.The echo canceller 232 filters the signal sent by the PCS block to thelocal transmitter associated with the receiver, and produces anapproximate replica of the echo impairment. By subtracting this replicasignal from the output of the IPR filter 30, the echo impairment isapproximately cancelled.

The adaptive gain stage 34 receives the processed signal from thesumming circuit 32 and fine tunes the signal path gain using azero-forcing LMS algorithm. Since this adaptive gain stage 34 trains onthe basis of error signals generated by the adaptive filters 228, 230and 232, it provides a more accurate signal gain than the one providedby the PGA 214 in the analog section.

The output of the adaptive gain stage 34, which is also the output ofthe FFE 26, is inputted to the deskew memory circuit 36. The deskewmemory 36 is a four-dimensional function block, i.e., it also receivesthe outputs of the three FFEs of the other three constituenttransceivers. There may be a relative skew in the outputs of the fourFFEs, which are the four signal samples representing the four symbols tobe decoded. This relative skew can be up to 50 nanoseconds, and is dueto the variations in the way the copper wire pairs are twisted. In orderto correctly decode the four symbols, the four signal samples must beproperly aligned. The deskew memory aligns the four signal samplesreceived from the four FFEs, then passes the deskewed four signalsamples to a decoder circuit 38 for decoding.

In the context of the exemplary embodiment, the data received at thelocal transceiver was encoded before transmission, at the remotetransceiver. In the present case, data might be encoded using an 8-statefour-dimensional trellis code, and the decoder 38 might therefore beimplemented as a trellis decoder. In the absence of intersymbolinterference (ISI), a proper 8-state Viterbi decoder would provideoptimal decoding of this code. However, in the case of Gigabit Ethernet,the Category-5 twisted pair cable introduces a significant amount ofISI. In addition, the partial response filter of the remote transmitteron the other end of the communication channel also contributes some ISI.Therefore, the trellis decoder 38 must decode both the trellis code andthe ISI, at the high rate of 125 MHz. In the illustrated embodiment ofthe gigabit transceiver, the trellis decoder 38 includes an 8-stateViterbi decoder, and uses a decision-feedback sequence estimationapproach to deal with the ISI components.

The 4-D output of the trellis decoder 38 is provided to the PCS receivesection 204R. The receive section 204R of the PCS block de-scrambles anddecodes the symbol stream, then passes the decoded packets and idlestream to the receive section 202T of the GMII block which passes themto the MAC module. The 4-D outputs, which are the error and tentativedecision, respectively, are provided to the timing recovery block 222,whose output controls the sampling time of the A/D converter 216. One ofthe four components of the error and one of the four components of thetentative decision correspond to the receiver shown in FIG. 2, and areprovided to the adaptive gain stage 34 of the FFE 26 to adjust the gainof the equalizer signal path. The error component portion of the decoderoutput signal is also provided, as a control signal, to adaptationcircuitry incorporated in each of the adaptive filters 230 and 232.Adaptation circuitry is used for the updating and training process offilter coefficients.

For the exemplary gigabit transceiver system 200 described above andshown in FIG. 2, there is a PHY Control system (not shown) whichprovides control signals to the blocks shown in FIG. 2, including thetiming recovery block 222, to control their functions.

For the exemplary gigabit transceiver system 200 described above andshown in FIG. 2, there are design considerations regarding theallocation of boundaries of the clock domains. These designconsiderations are dependent on the clocking relationship betweentransmitters and receivers in a gigabit transceiver. Therefore, thisclocking relationship will be discussed first.

During a bidirectional communication between two gigabit transceivers102, 104 (FIG. 1), through a process called “auto-negotiation,” one ofthe gigabit transceivers assumes the role of the master while the otherassumes the role of the slave. When a gigabit transceiver assumes one ofthe two roles with respect to the remote gigabit transceiver, each ofits constituent transceivers assumes the same role with respect to thecorresponding one of the remote constituent transceivers. Eachconstituent transceiver 108 is constructed such that it can bedynamically configured to act as either the master or the slave withrespect to a remote constituent transceiver 108 during a bidirectionalcommunication. The clocking relationship between the transmitter andreceiver inside the constituent transceiver 108 depends on the role ofthe constituent transceiver (i.e., master or slave) and is different foreach of the two cases.

FIG. 19 illustrates the general clocking relationship on the conceptuallevel between the transmitter and the receiver of the gigabit Ethernettransceiver (102 or 104) of FIG. 1. For this conceptual FIG. 19, thetransmitter TX represents the four constituent transmitters and thereceiver RX represents the four constituent receivers.

Referring to FIG. 19, the gigabit transceiver 1901 acts as the masterwhile the gigabit transceiver 1902 acts as the slave. The master 1901includes a transmitter 1910 and a receiver 1912. The slave 1902 includesa transmitter 1920 and a receiver 1922. The transceiver 1901(respectively, 1902) receives from the GMII 202T (FIG. 2) the data to betransmitted TXD via its input 1913 (respectively, 1923), and the GMIItransmit clock GTX_CLK (this clock is also called “gigabit transmitclock” in the IEEE 802.3ab standard) via its input 1915 (respectively,1925). The transceiver 1901 (respectively, 1902) sends to the GMII 202R(FIG. 2) the received data RXD via its output 1917 (respectively, 1927),and the GMII receive clock RX_CLK (this clock is also called “gigabitreceive clock” in the IEEE 802.3ab standard) via its output 1919(respectively, 1929). It is noted that the clocks GTX_CLK and RX_CLK maybe different from the transmit clock TCLK and receive clock RCLK,respectively, of a gigabit transceiver.

The receiver 1922 of the slave 1902 synchronizes its receive clock tothe transmit clock of the transmitter 1910 of the master 1901 in orderto properly receive the data transmitted by the transmitter 1910. Thetransmit clock of the transmitter 1920 of the slave 1902 is essentiallythe same as the receive clock of the receiver 1922, thus it is alsosynchronized to the transmit clock of the transmitter 1910 of the master1901.

The receiver 1912 of the master 1901 is synchronized to the transmitclock of the transmitter 1920 of the slave 1902 in order to properlyreceive data sent by the transmitter 1920. Because of thesynchronization of the receive and transmit clocks of the slave 1902 tothe transmit clock of transmitter 1910 of the master 1901, the receiveclock of the receiver 1912 is synchronized to the transmit clock of thetransmitter 1910 with a phase delay (due to the twisted pairs ofcables). Thus, in the absence of jitter, after synchronization, thereceive clock of receiver 1912 tracks the transmit clock of transmitter1910 with a phase delay. In other words, in principle, the receive clockof receiver 1912 has the same frequency as the transmit clock oftransmitter 1910, but with a fixed phase delay.

However, in the presence of jitter or a change in the cable response,these two clocks may have different instantaneous frequencies (frequencyis derivative of phase with respect to time). This is due to the factthat, at the master 1901, the receiver 1912 needs to dynamically changethe relative phase of its receive clock with respect to the transmitclock of transmitter 1910 in order to track jitter in the incomingsignal from the transmitter 1920 or to compensate for the change incable response. Thus, in practice, the transmit and receive clocks ofthe master 1901 may be actually independent. At the master, thisindependence creates an asynchronous boundary between the transmit clockdomain and the receive clock domain. By “transmit clock domain,” it ismeant the region where circuit blocks are operated in accordance withtransitions in the transmit clock signal TCLK. By “receive clockdomain,” it is meant the region where circuit blocks are operated inaccordance with transitions in the receive clock signal RCLK. In orderto avoid any loss of data when data cross the asynchronous boundarybetween the transmit clock domain and the receive clock domain insidethe master 1901, FIFOs are used at this asynchronous boundary. For theexemplary structure of the gigabit transceiver shown in FIG. 2, FIFOs234 (FIG. 2) are placed at this asynchronous boundary. Since aconstituent transceiver 108 (FIG. 1) is constructed such that it can beconfigured as a master or a slave, the FIFOs 234 (FIG. 2) are alsoincluded in the slave 1902 (FIG. 19).

At the slave 1902, the transmit clock TCLK of transmitter 1920 is phaselocked to the receive clock RCLK of receiver 1922. Thus, TCLK may bedifferent from GTX_CLK, a FIFO 1930 is needed for proper transfer ofdata TXD from the MAC (not shown) to the transmitter 1920. The depth ofthe FIFO 1930 must be sufficient to absorb any loss during the length ofa data packet. The multiplexer 1932 allows to use either the GTX_CLK orthe receive clock RCLK of receiver 1922 as the signal RX_CLK 1929. Whenthe GTX_CLK is used as the RX_CLK 1929, the FIFO 1934 is needed toensure proper transfer of data RXD 1927 from the receiver 1922 to theMAC.

For the conceptual block diagram of FIG. 19, there are one transmitclock TCLK and one receive clock RCLK for a gigabit transceiver. Thetransmit clock TCLK is common to all four constituent transceivers sincedata transmitted simultaneously on all four twisted pairs of cablecorrespond to 4D symbols. Since data received from the four twistedpairs of cable are to be decoded simultaneously into 4D symbols, it isan efficient design to have all the digital processing blocks clocked byone clock signal RCLK. However, due the different cable responses of thefour twisted pairs of cable, the A/D converter 216 (FIG. 2) of each ofthe four constituent transceivers requires a distinct sampling clocksignal. Thus, in addition to the signals TCLK and RCLK, the gigabittransceiver system 200 requires four sampling clock signals.

There is an alternative structure for the gigabit transceiver where thepartition of clock domains is different than the one shown in FIG. 2.This alternative structure (not shown explicitly) is similar to the oneshown in FIG. 2 and only differs in that its transmit clock domainincludes both the transmit clock domain and the receive clock domain ofFIG. 2, and that the FIFO block 234 is not needed. In other words, inthis alternative structure, the receive clock RCLK is the same as thetransmit clock TCLK, and the transmit clock TCLK is used to clock boththe transmitter and most of the receiver. The advantage of thisalternative structure is that there is no asynchronous boundary betweenthe transmit region and most of the receive region, thus allowing theecho canceller 232 and NEXT cancellers 230 to work with only one clocksignal. The disadvantage of this alternative structure is that there isa potential for a performance penalty at the master when the constituenttransceivers are tracking jitter. As a result of tracking jitter, therelative phase of a sampling clock signal with respect to the transmitclock TCLK may vary dynamically. This could cause the A/D converter tosample at noisy instants where transistors in circuit blocks operatingaccording to the clock signal TCLK are switching. Thus, the alternativestructure is not as good as the structure shown in FIG. 2, with respectto the switching noise problem.

FIG. 20 is a simplified block diagram of an embodiment of the timingrecovery system constructed according to the present invention andapplied to the gigabit transceiver architecture of FIG. 2. The timingrecovery system 222 (FIGS. 2 and 3) generates the different clocksignals for the exemplary gigabit transceiver shown in FIG. 2, namely,the sampling clock signals ACLK0, ACLK1, ACLK2, ACLK3, the receive clocksignal RCLK, and the transmit clock signal TCLK.

The timing recovery system 222 includes a set of phase detectors 2002,2012, 2022, 2032, a set of loop filters 2006, 2016, 2026, 2036, a set ofnumerically controlled oscillators (NCO) 2008, 2018, 2028, 2038 and aset of phase selectors 2010, 2020, 2030, 2040, 2050, 2060. The adders2004, 2014, 2024, 2034 are shown for conceptual illustration purposeonly. In practice, these adders are implemented within the respectivephase detectors 2002, 2012, 2022, 2032. The RCLK Offset is used toadjust the phase of the receive clock signal RCLK in order to reduce theeffects of switching noise on the sampling operations of thecorresponding A/D converters 216 (FIG. 2). Three of the four signalsACLK0 Offset, ACLK1 Offset, ACLK2 Offset, ACLK3 Offset are used toslightly adjust the phases of the respective sampling clocks ACLK0through ACLK4 in order to further reduce these effects of switchingnoise. The phase adjustments of the receive clock RCLK and the samplingclocks ACLK0 B 3 are not a necessary function of the timing recoverysystem 222. However, the method and system for generating these phaseadjustment signals constitute another novel aspect of the presentinvention and will be described in detail later.

Each of the phase detectors 2002, 2012, 2022, 2032 receives thecorresponding 1D component of the 4D slicer error 42 (FIGS. 2 and 3) andthe corresponding 1D component of the 4D tentative decision 44 (FIGS. 2and 3) from the decoder 38 (FIG. 2) to generate a corresponding phaseerror. The phase errors 0 through 3 are inputted to the loop filters2006, 2016, 2026, 2036, respectively. The loop filters 2006, 2016, 2026,2036 generate and output filtered phase errors to the NCOs 2008, 2018,2028, 2038. The loop filters 2006, 2016, 2026, 2036 can be of any order.In one embodiment, the loop filters are of second order. The NCOs 2008,2018, 2028, 2038 generate phase control signals from the filtered phaseerrors. The phase selectors 2010, 2020, 2030, 2040 receive correspondingphase control signals from the NCOs 2008, 2018, 2028, 2038,respectively. Each of the phase selectors 2010, 2020, 2030, 2040 selectsone out of several phases of the multi-phase signal 2070 based on thevalue of the corresponding phase control signal, and outputs thecorresponding sampling clock signal. In one embodiment of the invention,the multi-phase signal has 64 phases.

The multi-phase signal 2070 is generated by a clock generator 2080. Inthe exemplary embodiment illustrated in FIG. 20, the clock generator2080 includes a crystal oscillator 2082, a frequency multiplier 2084 andan 8-phase ring oscillator 2086. The crystal oscillator 2082 produces a25 MHz clock signal. The frequency multiplier 2084 multiplies thefrequency of the MHz clock signal by 40 and produces a 1 GHz clocksignal. From the 1 GHz clock signal, the 8-phase ring oscillator 586produces the 8 GHz 64-phase signal 2070.

The receive clock signal RCLK, which is used to clock all the circuitblocks in the receive clock domain (which include all the digital signalprocessing circuit blocks in FIG. 2), can be generated independently ofthe sampling clock signals ACLK0 through ACLK3. However, for designefficiency, RCLK is chosen to be related to one of the sampling clocksignals ACLK0 through ACLK3. For the exemplary embodiment illustrated inFIG. 20, the receive clock signal RCLK is related to the sampling clocksignal ACLK0. The receive clock signal RCLK is generated by inputtingthe sum of the phase control signal outputted from the NCO 2008 and theRCLK Offset via an adder 2042 to the phase selector 2050. Based on thissum, the phase selector 2050 selects one of the 64 phases of themulti-phase signal 2070 and outputs the receive clock signal RCLK. Thus,when the RCLK Offset is zero, the receive clock signal RCLK is the sameas the sampling clock ACLK0.

As discussed previously in relation to FIG. 19, when the constituenttransceiver is configured as the master, its transmit clock TCLK ispractically independent of its receive clock RCLK. In FIG. 20, when theconstituent transceiver is the master, the transmit clock signal TCLK isgenerated by inputting the signal TCLK Offset, generated by the PHYControl system of the gigabit transceiver, to the phase selector 2060.Based on the TCLK Offset, the phase selector 2060 selects one of the 64phases of the multi-phase signal 2070 and produces the transmit clocksignal TCLK. When the constituent transceiver is the slave, the transmitclock signal TCLK is generated by inputting the sum of the output of theNCO 2008 and the signal TCLK Offset, via the adder 2042, to the phaseselector 2060. Based on this sum, the phase selector 2060 selects one ofthe 64 phases of the multi-phase signal 2070 and produces the transmitclock signal TCLK. Thus, at the slave, the transmit clock signal TCLKand the receive clock signal RCLK are phase-locked (as discussedpreviously in relation to FIG. 19).

It is important to note that, referring to FIG. 20, the functionperformed by the combination of an NCO (2008, 2018, 2028, 2038) followedby a phase selector (2110, 2120, 2130, 2140, 2150, 2160) can beimplemented by analog circuitry. The analog circuitry can be describedas follows. Each of the filtered phase errors outputted from the loopfilters (2006, 2016, 2026, 2036) would be inputted to a D/A converter tobe converted to analog form. Each of the analog filtered phase errorswould then be inputted to a voltage-controlled oscillator (VCO). TheVCOs would produce the clock signals. The VCOs can be implemented withwell-known analog techniques such as those using varactor diodes.

FIG. 21 is a block diagram illustrating a detailed implementation of thephase detectors 2002, 2012, 2022, 2032, the loop filters 2006, 2016,2026, 2036, and the NCOs 2008, 2018, 2028, 2038 of FIG. 20.

It is important to note that the 4D path connecting the phase detectors2002, 2012, 2022, 2032, the loop filters 2006, 2016, 2026, 2036, theNCOs 2008, 2018, 2028, 2038 and the phase selectors 2010, 2020, 2030,2040 (FIG. 20) can be thought of as the 4D forward path of a phaselocked loop whose 4D feedback path goes from, referring now to FIG. 2,the A/D converters 216 to the demodulator 226 then back to the timingrecovery 222. The input to this phase locked loop is actually phaseinformation embedded in the slicer error 42 and tentative decision 44,and the phase locked loop output is the phases of the sampling clocksignals. This phase locked loop is digital but can be approximated by acontinuous-time phase locked loop for practical design analysis purpose,as long as the sampling rate is much larger than the bandwidth of theloop. The theoretical transfer function of a continuous-timesecond-order phase locked loop is:

$\frac{\theta (s)}{\Theta (s)} = \frac{{K_{L} \cdot s} + {K_{L} \cdot K_{1}}}{s^{2} + {K_{L} \cdot s} + {K_{L} \cdot K_{1}}}$

where the transfer function of the loop filter is:

${L(s)} = {{K_{L} \cdot \left( {1 + \frac{K_{1}}{s}} \right)} = {K_{v} \cdot K_{d} \cdot \left( {1 + \frac{K_{1}}{s}} \right)}}$

where K_(v) is the gain of the voltage-controlled oscillator, K_(d) isthe gain of the phase detector, K_(L)=K_(v)·K_(d) and K₁ is the gain ofthe integrator inside the loop filter. For the digital phase locked loopof the present invention, the gain parameters K_(v) and K₁ can becomputed from the word lengths and scale factors used in implementingthe NCO and the integrator of the loop filter. However, the gain of thephase detector K_(d) is more conveniently computed by simulation. Thegain parameters are used for the design and analysis of the digitalphase locked loop.

FIG. 21 shows a phase detector 2110, a first filter 2130, a secondfilter 2150, an adder 2160 and an NCO 2170. The phase detector 2110 isan exemplary embodiment of the phase detectors 2002, 2012, 2022, 2032 ofFIG. 20. The combination of the first filter 2130, the second filter2150 and the adder 2160 is an exemplary embodiment of the loop filters2006, 2016, 2026, 2036 of FIG. 20. The NCO 2170 is an exemplaryembodiment of the NCOs 2008, 2018, 2028, 2038 of FIG. 20.

In FIGS. 21 through 23, the numbers in the form “Sn.k” indicate theformat of the data, where S denotes a signed number, “n” denotes thetotal number of bits and “k” denotes the number of bits after thedecimal point.

The phase detector 2110 includes a lattice structure having two delayelements 2112, 2118, two multipliers 2114, 2120 and an adder 2122. Thephase detector 2110 receives as inputs the corresponding 1D component ofthe 4D slicer error 42 (FIGS. 2 and 3) and the corresponding 1Dcomponent of the 4D tentative decision 44 (FIGS. 2 and 3) from thetrellis decoder 38 (FIGS. 2 and 3). For simplicity, in FIG. 21, thesetwo 1D components are labeled as 42A and 44A, respectively. It isunderstood that, for the phase detector of each of the four constituenttransceivers of the gigabit transceiver, a distinct 1D component of theslicer error 42 and a distinct 1D component of the tentative decision 44are used as inputs. On the upper branch of the lattice structure, theslicer error 42 is delayed by one unit of time (here, one symbol period)via the delay element 2112, then multiplied by the tentative decision44A to produce a pre-cursor phase error 2115. The pre-cursor phase error2115, when accumulated over time, represents the correlation between apast slicer error and a present tentative decision, thus indicates thesampling phase error with respect to the zero-crossing point at thestart of the signal pulse (this zero-crossing point is part of thepre-cursor introduced by design to the signal pulse by the precursorfilter 28 of the FFE 26 in FIG. 2). On the lower branch of the latticestructure, the tentative decision 44A is delayed by one unit of time viathe delay element 2118, then multiplied by the slicer error 42A toproduce a post-cursor phase error 2121.

The post-cursor phase error 2121, when accumulated over time, representsthe correlation between a present slicer error and a past tentativedecision, thus indicates the sampling phase error with respect to thelevel-crossing point in the tail end of the signal pulse. In oneembodiment, this level-crossing point is determined by the first tapcoefficient of the DFE 312 of FIG. 3. At the zero-crossing point at thestart of the signal pulse, the slope of the signal pulse is positive,while at the level-crossing point at the tail end of the signal pulse,the slope of the signal pulse is negative. Thus, the pre-cursor phaseerror 2115 and the post-cursor phase error 2121 must be combined withopposite signs in the adder 2122. The combination of the pre-cursor 2115and post-cursor phase errors 2121 produces the phase error associatedwith one of the sampling clock signals ACLK0 B ACLK3. This is the phaseerror indicated as one of the phase errors 0 through 3 in FIG. 20.

The phase offset 2102 is one of the sampling clock offset signals ACLK0Offset through ACLK3 Offset in FIG. 20. The phase offset 2102, whenneeded, is generated by the PHY Control system of the gigabittransceiver. The phase offset 2102 is delayed by one unit of time thenis added to the combination of the pre-cursor error 2115 and post-cursor2121 via the adder 2122 to produce an adjusted phase error. The adjustedphase error 2123 is stored in the delay element 2124 and outputted tothe first filter 2130 at the next clock transition. The delay element2124 is used to prevent the propagation delay of the adder 2122 fromconcatenating with the propagation delay of the adder 2132 in the firstfilter 2130.

The first filter 2130, termed “phase accumulator,” accumulates the phaseerror 2125 outputted by the phase detector 610 over a period of timethen outputs the accumulated result at the end of the period of time. Inthe exemplary embodiment shown in FIG. 21, this period of time is 16symbol periods. The first filter 2130 is an “accumulate-and-dump” filterwhich includes the adder 2132, a delay element (i.e., register) 2134,and a 16-units-of-time register 2136. The register 2126 outputs alowpass filtered phase error 2127 at the rate of one per period of theTRSAMP0 2104 clock, that is, one every 16 symbol periods. When theregister 2126 outputs the lowpass filtered phase error 2127, theregister 2134 is cleared and the accumulation of phase error 2125restarts. It is noted that, downstream from the register 2126, circuitsare clocked at one sixteenth of the symbol rate.

The filtered phase error 2137 is inputted to a multiplier 2140 where itis multiplied by a factor different than 1 when it is desired that thebandwidth of the phase locked loop be different than its normal value(which is determined by the design of the filter). In the exemplaryembodiment depicted in FIG. 21, filtered phase error 2137 is multipliedby the value 2 outputted from a multiplexer 2142 when the select signal2106 indicates that the loop filter bandwidth must be larger than normalvalue. This occurs, for example, during startup of the gigabittransceiver. Similarly, although not shown in FIG. 21, when it isdesired that the loop filter bandwidth be narrower than normal value,the filtered phase error 2137 can be multiplied by a value less than 1.

The output 2144 of the multiplier 2140 is inputted to the second filter2150 which is an integrator and to the adder 2160. The integrator 2150is an IIR filter having an adder 2152 and a register 2154, operating atone sixteenth of the symbol rate. The integrator 2150 integrates thesignal 2144 (which is essentially the filtered phase error 2137) toproduce an integrated phase error 2156. The purpose of the phase lockedloop is to generate a resulting phase for a sampling clock signal suchthat the phase error is equal to zero. The purpose of the integrator2150 in the phase locked loop is to keep the phase error of theresulting phase equal to zero even when there is static frequency error.Without the integrator 2150, the static frequency error would result ina static phase error which would be attenuated but not made exactly zeroby the phase locked loop. With the integrator 2150 in the phase lockedloop, any static phase error would be integrated to produce a largegrowing input signal to the NCO 670, which would cause the phase lockedloop to correct the static phase error. The integrated phase error 2156is scaled by a scale factor via a multiplier 2158. This scale factorcontributes to the determination of the gain of the integrator 2150. Thescaled result 2159 is added to the signal 2144 via an adder 2160.

The output 2162 of the adder 2160 is inputted to the NCO 2170. Theoutput 2162 is scaled by a scale factor, e.g., via a multiplier 2172.The resulting scaled signal is recursively filtered by an IIR filterformed by an adder 2174 and a register 2176. The IIR filter operates atone sixteenth of the symbol rate. The signal 2178, outputted every 16symbol periods, is used as the phase control signal to one of the phaseselectors 2010, 2020, 2030, 2040, 2050, 2060 (FIG. 20).

For the embodiment shown in FIG. 21, the gain parameters discussed aboveare as follows: K_(v), the gain of the NCO, is 2⁻¹¹ for normal bandwidthmode, 2⁻¹⁰ for high bandwidth mode: K₁, the gain of the integrator 2150,is equal to the product of the scaling of the integrator register 2154(2⁻⁸ in FIG. 21) and the ratio of the phase locked loop sampling rate tothe symbol rate (2⁻⁴ in FIG. 21). For the word lengths and scalingindicated in FIG. 21, K₁ is equal to 2⁻¹². The gain K_(d) of the phasedetector 2110 is computed by simulations and is equal to 2.2. Theseparameters are used to compute the theoretical transfer function of thephase locked loop (PLL) which is then compared with the PLL transferfunction obtained by simulation. The match is near perfect, confirmingthe validity of the design parameters.

One embodiment of the system 2100 of FIG. 21 further includes theexternal control signals PLLFRZ, PLLPVAL, PLLPRST, PLLFVAL, PLLFRST,PLLPRAMP, which are not shown explicitly in FIG. 21.

The control signal PLLFRZ, when applied, forces the phase error to zeroto point 1 of the first filter 2130, therefore causes freezing ofupdates of the frequency change and/or phase change, except for anyphase change caused by a non-zero value in the frequency register 2154of the integrator 2150.

The control signal PLLPVAL is a 3-bit signal provided by the PHY Controlsystem. It is used to specify the reset value of the NCO register 2176of the NCO 2170, and is used in conjunction with the control signalPLLPRST.

The control signal PLLPRST, when applied to the NCO register 2176 inconjunction with the signal PLLPVAL, resets the 6 most significant bitsof the NCO register 2176 to a value specified by 8 times PLLPVAL. Thereset is performed by stepping up or down the 6 MSB field of the NCOregister 2176 such that the specified value is reached after a minimumnumber of steps. Details of the phase reset logic block used to resetthe value of the register 2176 of the NCO 2170 are shown in FIG. 22 andwill be discussed later.

PLLFVAL is a 3-bit signal provided by the PHY Control system. It is tobe interpreted as a 3-bit twos complement signed integer in the range[−4,3]. It is used to specify the reset value of the frequency register2154 of the integrator 2150 and is used in conjunction with the controlsignal PLLFRST.

The control signal PLLFRST, when applied to the frequency register 2154of the integrator 2150 in conjunction with the signal PLLFVAL, resetsthe frequency register 2154 to the value 65536 times PLLFVAL.

The control signal PLLPRAMP loads the fixed number B2048 into thefrequency register 2154 of the integrator 2150. This causes the phase ofa sampling clock signal (and receive clock RCLK) to ramp at the fixedrate of B2 ppm. This is used during startup at the master constituenttransceiver. PLLPRAMP overrides PLLFRST. In other words, if bothPLLPRAMP and PLLFRST are both applied, the value loaded into thefrequency register 2154 is B2048, regardless of the value that PLLFRSTtries to load.

FIG. 22 is a block diagram illustrating the phase reset logic block 2200to the NCO 2170. The control signal PLLPRST is applied to the AND gate2202. The output of the AND gate 2202 is applied to theincrement/decrement enable input of the register 2176. The 3-bit valuePLLPVAL from the PHY Control System of the gigabit transceiver isshifted left by 3 bits to form a 6-bit value 2204.

The current output of the register 2176 of the NCO 2170 (FIG. 21), whichis the phase control signal inputted to the corresponding phase selector(FIG. 20), is subtracted from this shifted value of PLLPVAL via an adder2206. Module 2208 determines whether the output of adder 2206 isnon-zero. If it is non-zero, then module 2208 outputs a “1” to the ANDgate 2202 to enable the enable input of register 2176. If it is zero,module 2206 outputs a zero to the AND gate 2208 to disable the enableinput of the register 2176. Module 2210 determines whether the output ofadder 2206 is positive or negative. If it is positive, module 2210outputs a count up indicator to the register 2176. If it is negative,module 2210 outputs a count down indicator to register 2176.

The subtraction at adder 2206 finds the shortest path from the currentvalue of the NCO register 2176 to the shifted PPLVAL 2204. For example,suppose the current phase value of register 2176 is 20. If the shiftedPPLVAL 2204 (which is the desired value) is 32, the difference is 12,which is positive, therefore, the register 676 is incremented. If thedesired phase value is 56, the difference is 36 or “100100” which isinterpreted as B28, so the register 2176 will be decremented 28consecutive times. The phase steps occur at the rate of one every 16symbol periods. This single stepping is needed because of the way thephase selector operates. The phase selector can only increment ordecrement from its current setting.

FIG. 23 is a block diagram of an exemplary phase shifter logic blockused for the phase control of the receive clock signal RCLK. The phaseshifter logic block 2300 is needed when the signal RCLK Offset (FIG. 20)is used to adjust the phase of the receive clock signal RCLK. The signalRCLK Offset is a 6-bit signal provided by the PHY Control system, andspecifies the amount by which the phase of RCLK must shifted. Even ifthe signal RCLK Offset indicates a large amount of phase shift, thisphase shift must be transferred to the input of the phase selector 2050(FIG. 20) one step at a time due to the way the phase selector operates.The change of phase of RCLK must occur in the direction indicated by acontrol signal STEPDIR generated by the PHY Control system.

The phase shifter logic block 2300 includes a comparator 2302, an offsetregister 2304 and the adder 2042 (the same adder indicated in FIG. 20).The comparator 2302 compares the output 2306 of the offset register 804with the signal RCLK Offset. If the two signals are equal, then thecomparator 2302 outputs a “0” to the enable input of the offset register2304 to disable the up/down counting of the offset register 2304, thuskeeping the output 2306 the same for the next time period. If the twosignals are not equal, the comparator 2302 outputs a “1” to the enableinput of the offset register 2304 to enable the up/down counting,causing the output 2306 to be incremented or decremented at the nexttime period. The signal STEPDIR from the PHY Control system is inputtedto the up/down input of the offset register 2304 to control the countingdirection. The output 2306 from the offset register 2304 is added to thephase control signal 2009 produced by the NCO 2008 (FIG. 20) via theadder 2042 to generate the phase control signal 2049 (FIGS. 23 and 20)for the RCLK phase selector 2050 (FIG. 20).

The coupling of switching noise from the digital signal processor thatimplements the transceiver functions to each of the A/D converters is animportant problem that needs to be addressed. Switching noise occurswhen transistors switch states in accordance with transitions in theclock signal (or signals) that controls their operation. Switching noisein the digital section of the transceiver can be coupled to the analogsection of the transceiver. Switching noise can cause severe degradationto the performance of an A/D converter if it occurs right at or near theinstant the A/D converter is sampling the received signal. The presentinvention, in addition to providing a timing recovery method and system,also provides a method and system for minimizing the degradation of theperformance of the A/D converters caused by switching noise.

The effect of switching noise on an A/D converter can be reduced if theswitching noise is synchronous (with a phase delay) with the samplingclock of the A/D converter. If, in addition, it is possible to adjustthe phase of the sampling clock of the A/D converter with respect to thephase of the switching noise, then the phase of the sampling clock ofthe A/D converter can be optimized for minimum noise. It is noted that,for a local gigabit transceiver, the sampling clock signals ACLK0,ACLK1, ACLK2, ACLK3 are synchronous to each other (i.e., having the samefrequency) because they are synchronous to the 4 transmitters of theremote transceiver and these 4 remote transmitters are clocked by a sametransmit clock signal TCLK. It is also important to note that the localreceive clock signal RCLK is synchronous to the local sampling clocksignals ACLK0, ACLK1, ACLK2, ACLK3.

Referring to FIGS. 2 and 5, the four A/D converters 216 of the fourconstituent transceivers are sampled with the sampling clock signalsACLK0, ACLK1, ACLK2, ACLK3. Each of the phases of these sampling clocksignals is determined by the subsystem 600 (FIG. 21) of the timingrecovery system 222 in response to the phase of the correspondingreceived signal, which depends on the remote transmitter and the linecharacteristics. Thus, the phases of the sampling clock signals changefrom line to line, and are not under the control of the system designer.

However, the relative phase of the receive clock signal RCLK withrespect to the sampling clock signals ACLK0, ACLK1, ACLK2, ACLK3 can becontrolled by adjusting the signal RCLK Offset (FIG. 20). The signalRCLK Offset can be used to select the RCLK phase that would cause theleast noise coupling to the A/D converters 216 of FIG. 2. The underlyingprinciple is the following. Referring to FIG. 2 and the boundaries ofthe clock domain, the entire digital signal processing, control andinterface functions of the receiver operate in accordance withtransitions in the receive clock signal RCLK. In other words, most ofthe digital logic circuits switch states on a transition of RCLK (morespecifically, on a rising edge of RCLK). Only a small portion of thetransceiver operates in accordance with transitions in the transmitclock signal TCLK. Therefore, most of the switching noise is synchronouswith the receive clock signal RCLK. Since the receive clock signal RCLKis synchronous with the sampling clock signals ACLK0, ACLK1, ACLK2,ACLK3, it follows that most of the switching noise is synchronous withthe sampling clock signals ACLK0, ACLK1, ACLK2, ACLK3. Therefore, if thephase of the receive clock signal RCLK is adjusted such that atransition in the signal RCLK occurs as far as possible in time fromeach of the sampling clock signals ACLK0, ACLK1, ACLK2, ACLK3, then theswitching noise coupling to the A/D converters will be minimized.

The process for adjusting the phase of the receive clock signal RCLK canbe summarized as follows. The process performs an exhaustive search overall the RCLK phases that, by design, can possibly exist in one symbolperiod. For each phase, the process computes the sum of the mean squarederrors (MSEs) of the 4 pairs (i.e., the 4 constituent transceivers). Atthe end of the search, the process selects the RCLK phase that minimizesthe sum of the MSEs of the four pairs. The following is a description ofone embodiment of the RCLK phase adjustment process, where there are 64possible RCLK phases.

FIG. 24 is a flowchart illustrating the process 2400 for adjusting thephase of the receive clock signal RCLK. Upon Start (block 2402), process2400 initializes all the state variables (which include counters,registers), sets Offset to B32 (block 2404), sets Min_MSE equal to theMSE of the gigabit transceiver before any RCLK phase change, and setsBestOffset equal to zero. The MSE of the gigabit transceiver is the sumof the mean squared errors (MSEs) of the 4 constituent transceivers. TheMSE of a constituent transceiver is the mean squared error of thecorresponding 1D component of the 4D slicer error 42 (FIG. 2), and isoutputted by a MSE computation block 2700 (FIG. 27) for every frame.Each frame is equal to 1024 symbol periods. This initialization is donewithin a duration of 1 frame. Process 2400 then waits for the effect ofthe RCLK phase change on the system to settle (block 2406). The durationof this waiting is 5 frames. Process 2400 then computes MSE (by summingthe MSEs of all four constituent transceivers outputted by thecorresponding MSE computation block 2700 of FIG. 27) which correspondsto the current setting of RCLK Offset (block 908). The duration of block2408 is one frame. In block 2410, process 2400 compares the new MSE withMin_MSE. If the new MSE is strictly less than Min_MSE, then Min-MSE isset to the value of the new MSE and BestOffset is set to the value ofOffset. In block 2412, process checks whether Offset is equal to 31,i.e., whether all possible 64 phase offsets have been searched. IfOffset is not equal to 31, then process 2400 increments Offset by 1(block 2414) then continues the search for the best RCLK Offset by goingback to block 2406. If Offset is equal to 31, that is, if process 2400has searched all possible 64 phase offsets, then process 2400 setsOffset equal to the value of BestOffset (block 2416) then terminates(block 2418). The duration of each of blocks 2414 and 2416 is 1 frame.

After adjustment of the receive clock RCLK phase, small adjustments canbe made to the phases of the sampling clocks ACLK1, ACLK2, ACLK3 tofurther reduce the coupling of switching noise to the A/D converters.Since the timing recovery system 222 of FIG. 20 without the ACLK0 B 3Offsets, through the phase locked loop principle, already sets thesampling clocks at the optimal sampling positions with respect to thepulse shape of incoming signals from the remote transceivers, the smallphase adjustments made to the sampling clocks could cause some loss ofperformance of the A/D converters. However, the net result is stillbetter than performing no phase adjustment of the sampling clocks andallowing the A/D converters to sample the incoming signals at a noisyinstant where the transistors in the digital section are switchingstates. In the embodiment depicted in FIG. 20, phase adjustment is notmade to the sampling clock ACLK0 because, by design of the structure ofthe embodiment, the phase difference between ACLK0 and RCLK is equal toRCLK Offset. Thus, in this embodiment, any adjustment to the phase ofACLK0 will also move RCLK away from the optimal position determined byprocess 2400 above by the same amount of phase adjustment.

FIGS. 25A, 25B, 25C illustrate three examples of distribution of thetransitions of clock signals within a symbol period to further clarifythe concept of phase adjustment of the clock signals. It is noted that,in these examples, the four sampling clock signals ACLK0 B 3 are shownas occurring in their consecutive order within a symbol period forillustrative purpose only. It is understood that the sampling clocksignals ACLK0 B 3 can occur in any order.

FIG. 25A is a first example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 are evenly distributedwithin the symbol period of 8 nanoseconds (ns). Thus, each ACLK clocktransition is 2 ns apart from an adjacent transition of another ACLKclock. Therefore, for this clock distribution example, a transition ofthe receive clock RCLK can only be placed at most 1 ns away from anadjacent ACLK transition. This “distance” (phase delay) may not beenough to reduce the coupling of switching noise to the two A/Dconverters associated with the two adjacent sampling clock signals(ACLK3 and ACLK0, in the example). In this case, it may be desirable toslightly adjust the phase of the two adjacent sampling clock signals tomove their respective transitions further away from a RCLK transition,as illustrated by their new transition occurrences within a symbolperiod in FIG. 25A.

FIG. 25B is a second example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 are distributed within thesymbol period of 8 nanoseconds (ns) such that each ACLK clock transitionis 1 ns apart from an adjacent transition of another ACLK clock. Forthis clock distribution example, a transition of the receive clock RCLKcan be positioned midway between the last ACLK transition of one symbolperiod (ACLK3 in FIG. 25B) and the first ACLK transition of the nextsymbol period (ACLK0 in FIG. 25B) so that the RCLK transition is 2.5 nsfrom an adjacent ACLK transition. This “distance” (phase delay) may beenough to reduce the coupling of switching noise to the two A/Dconverters associated with the two adjacent sampling clock signals(ACLK3 and ACLK0, in the example). In this case, phase adjustment of thetwo adjacent sampling clock signals to move their respective transitionsfurther away from a RCLK transition may not be needed.

FIG. 25C is a third example of clock distribution where the transitionsof the four sampling clock signals ACLK0 B 3 occur at the same instantwithin the symbol period of 8 nanoseconds (ns). In this clockdistribution example, a transition of the receive clock RCLK can bepositioned at the maximum possible distance of 4 ns from an adjacentACLK transition. This is the best clock distribution that allows maximumreduction of coupling of switching noise to the four A/D convertersassociated with the sampling clock signals. In this case, there is noneed for phase adjustment of the sampling clock signals.

For the embodiment shown in FIG. 20 of the timing recovery system 222(FIG. 2), the following phase adjustment process is applied to the threesampling clock signals ACLK1, ACLK2, ACLK3. It is understood that, in adifferent embodiment of the timing recovery system 222 (FIG. 2) wherethe receive clock signal RCLK is not tied to one of the sampling clocksignals ACLK0 B 3, the following phase adjustment process can be appliedto all of the sampling clock signals.

The process for adjusting the phase of a sampling clock signal ACLKx(“x” in ACLKx denotes one of 0, 1, 2, 3) can be summarized as follows.The process performs a search over a small range of phases around theinitial ACLKx phase. For each phase, the process logs the mean squarederror MSE of the associated constituent transceivers. At the end of thesearch, the process selects the ACLKx phase that minimizes the MSE ofthe associated constituent transceiver.

Whenever the phase of a sampling clock signal ACLKx changes, thecoefficients of the echo canceller 232 and of the NEXT cancellers 230change. Thus, to avoid degradation of performance, the phase steps ofthe sampling clocks should be small so that the change they induce onthe coefficients is also small. When the phase adjustment requiresmultiple consecutive phase steps, the convergence of the coefficients ofthe echo canceller 232 and of the NEXT cancellers 230 should be fast inorder to avoid a buildup of coefficient mismatch.

FIG. 26 is a flowchart illustrating an embodiment of the process foradjusting the phase of a sampling clock signal ACLKx associated with oneof the constituent transceivers, where the search is over a range of 16phases around the initial ACLKx phase. For each of the constituenttransceivers, process 2600 of FIG. 26 is run independently of andconcurrently with the other constituent transceivers. Upon Start (block2602), process 2600 initializes all the state variables (which includecounters, registers), sets Offset to B8 (block 2604), sets Min_MSE equalto the MSE of the associated constituent transceiver before any RCLKphase change, and sets BestOffset equal to zero. The MSE of theassociated constituent transceiver is the mean squared error of thecorresponding 1D component of the 4D slicer error 42 (FIG. 2). Thisinitialization is done within a duration of 1 frame. Process 2600 thenwaits for the effect of the ACLK phase change on the system to settle(block 2606). The duration of this waiting is 32 frames. (block 2608).The duration of block 2608 is one frame. In block 2610, process 2600compares the new MSE (outputted by the corresponding MSE computationblock 2700 of FIG. 27) which corresponds to the current setting of ACLKxOffset with Min_MSE. If the new MSE is strictly less than Min_MSE, thenMin-MSE is set to the value of the new MSE and BestOffset is set to thevalue of Offset. In block 2612, process 2600 checks whether Offset isequal to 7, i.e., whether all 16 phase offsets in the range have beensearched. If Offset is not equal to 7, then process 2700 incrementsOffset by 1 (block 2614) then continues the search for the best ACLKxOffset by looping back to block 2606. If Offset is equal to 7, that is,if process 2600 has searched all the 16 phase offsets in the range, thenprocess 2600 sets Offset equal to the value of BestOffset (block 2616)then terminates (block 2618). The duration of each of blocks 2614 and2616 is 1 frame.

FIG. 27 is a block diagram of an exemplary implementation of the MSEcomputation block used for computing the mean squared error of aconstituent transceiver. In one embodiment of the gigabit transceiver,there are four MSE computation blocks, one for each of the fourconstituent transceivers. The four MSE computation blocks are runindependently and concurrently for the four constituent transceivers.The MSE computation block 2700 includes a squaring module 2702 and aninfinite impulse response (IIR) filter 2704. The IIR filter 2704includes an adder 2706, a feedback delay element 2708 and a forwarddelay element 2710. The squaring module 2702 receives the corresponding1D component of the 4D slicer error 42 (FIG. 2), which is denoted as 42Afor simplicity, and out puts the squared error value to the filter 2704.The filter 2704 accumulates the squared error values by adding via theadder 2706 the current squared error value to the previous squared errorvalue stored in the feedback delay element 2708. The accumulated valueis stored in the forward register 2710. In the exemplary embodimentshown in FIG. 27, the squared error values are accumulated for 1024symbol periods (which is one frame of the PHY Control system). Since theaccumulation period is sufficiently long, the accumulated valuepractically corresponds to the mean squared error. At the end of theaccumulation period, the clock signal 2720 from the PHY Control systemclears the contents of the feedback delay element, and clocks theforward delay element 2710 so that the forward delay element 2710outputs the accumulated value MSE and resets to zero.

While certain exemplary embodiments have been described in detail andshown in the accompanying drawings, it is to be understood that suchembodiments are merely illustrative of and not restrictive on the broadinvention. It will thus be recognized that various modifications may bemade to the illustrated and other embodiments of the invention describedabove, without departing from the broad inventive scope thereof. It willbe understood, therefore, that the invention is not limited to theparticular embodiments or arrangements disclosed, but is rather intendedto cover any changes, adaptations or modifications which are within thescope and spirit of the invention as defined by the appended claims.

1-8. (canceled)
 9. A method of processing a communication signal havingN states, where N is an integer greater than one, the method comprisingsteps of: (a) generating tentative decisions regarding a path and afinal decision; (b) producing a single-state intersymbol interference(ISI) compensation signal corresponding to an ISI component based on thetentative decisions coefficients; (c) producing an N-staterepresentation signal based on the single-state ISI compensation signal;and (d) decoding the N-State representation signal.
 10. (canceled) 11.The method of claim 9 wherein producing step (b) comprises producing thesingle-state ISI compensation signal based on a subset of high-ordercoefficients. 12-15. (canceled)
 22. A method of processing acommunication signal having a plurality of states, the method comprisingsteps of: (a) generating tentative decisions regarding a path and afinal decision; (b) producing a single-state intersymbol interference(ISI) compensation signal corresponding to a first ISI component basedon the tentative decisions; (c) subtracting the single-state ISIcompensation signal from a signal sample to produce a tail component;(d) producing a representation signal having a plurality of states basedon the tail component; and (e) decoding the representation signal. 23.The method of claim 22 wherein producing step (b) comprises producingthe single-state ISI compensation signal based on a subset of high-ordercoefficients.
 24. The method of claim 23 wherein producing step (d)comprises producing the representation signal based on the tailcomponent and a subset of low-order coefficient values.
 25. The methodof claim 24 further comprising a step (f), performed prior to producingstep (d), of computing a set of pre-computed values representing a setof potential single-state ISI compensation signals corresponding to asecond ISI component, wherein producing step (d) comprises producing therepresentation signal based on the tail component and the set ofpre-computed values.
 26. The method of claim 25 wherein producing step(d) comprises combining the set of pre-computed values with the tailcomponent to produce a set of potential digital signals, one of thepotential digital signals being substantially compensated for the secondISI component.
 27. The method of claim 26 wherein the first ISIcomponent represents ISI introduced by a remote transmission device, andwherein the second ISI component represents ISI introduced bytransmission channel characteristics.